 携程 Redis 多数据中心 双向同步实践 祝辰Types CRDT – Last Write Wins T2 > T1 T2 WINS 时间不一致 两个Redis的系 统时钟不一致 最终保留了第一 次的结果 Vector Clock • 向量表示不同节点 的操作数 • SET KEY=VAL1 (0,0)->(1,0) • SET KEY=VAL2 (1,0)->(1,1) 删除导致数据不一致 • 假设已经存在 保留被删除的记录 内存爆满 随着时间的推移,大量的失效KEY驻留 时间轴 CRDT -- GC 基于节点之间的vector clock的通讯,删除不必要的 失效KEY (1,0) (1,1) (1,1) Vector Clock Vector Clock (1,0) 什么是 CRDT State-based Replication • 交换律 • 结合律 • 幂等性 Op-based0 码力 | 33 页 | 2.15 MB | 1 年前3 携程 Redis 多数据中心 双向同步实践 祝辰Types CRDT – Last Write Wins T2 > T1 T2 WINS 时间不一致 两个Redis的系 统时钟不一致 最终保留了第一 次的结果 Vector Clock • 向量表示不同节点 的操作数 • SET KEY=VAL1 (0,0)->(1,0) • SET KEY=VAL2 (1,0)->(1,1) 删除导致数据不一致 • 假设已经存在 保留被删除的记录 内存爆满 随着时间的推移,大量的失效KEY驻留 时间轴 CRDT -- GC 基于节点之间的vector clock的通讯,删除不必要的 失效KEY (1,0) (1,1) (1,1) Vector Clock Vector Clock (1,0) 什么是 CRDT State-based Replication • 交换律 • 结合律 • 幂等性 Op-based0 码力 | 33 页 | 2.15 MB | 1 年前3
 Redis 多数据中心双向同步 祝辰• LWW Expire • Larger TTL Wins GC CRDT 在 Redis 中的实现 CRDT 在 Redis 中的实现 CRDT 的基本信息 • vector clock • global id • timestamp • merge 操作 正常同步的场景 Data Type: Strings Use Case: Common SETs Conflict Resolution:0 码力 | 45 页 | 1.74 MB | 1 年前3 Redis 多数据中心双向同步 祝辰• LWW Expire • Larger TTL Wins GC CRDT 在 Redis 中的实现 CRDT 在 Redis 中的实现 CRDT 的基本信息 • vector clock • global id • timestamp • merge 操作 正常同步的场景 Data Type: Strings Use Case: Common SETs Conflict Resolution:0 码力 | 45 页 | 1.74 MB | 1 年前3
共 2 条
- 1













