点击上方小坤探游架构笔记可以订阅哦
今天我们继续来聊聊单值对象在多主复制模型部署架构中的冲突问题. 因篇幅较多, 我们拆分为多篇展开, 本文不具体展开冲突的解决方案, 留着后续展开....多主复制冲突问题
我们知道, 用户持有一份自己的name于系统中, 仅有当前用户持有对自己name的所有权, 其他用户可能最多仅具备读取权利但没有写入的权利, 对于这类数据我们称之为私有数据....也就是写入先有 1 再有 2, 先有2 再有 3, 并且将UserA 的三个操作映射到时间序列上是具备全序关系, 这个就是我们所谓的因果关系, 关注的是事件操作先后顺序, 如下:
如果上述三个操作放在单主复制模型的部署架构中...但是如果是放在多主复制模型的部署架构中就会存在问题, 依次写入但都路由到不同的IDC中, 如下:
这个时候我们会发现在进行异步数据复制的时候就会发现同一个字段产生了不同的数据值, 这个就是我们所谓的数据值冲突...总结
从上述多主复制模型下的冲突我们可以看到关键技术是具备顺序和版本号, 其关注点是数据值的冲突, 但是中间我们插入了一个新词, 就是Clock. 为什么要谈及这个呢?