• wenxuan
    2022-03-27
    通过垂直分片的方式解决多主复制可能遇到的问题: 假设主节点 1 拥有字段 A,主节点 2 拥有字段 B。在某一时刻,主节点 A 上要对记录的两个字段进行修改 (a0, b0) => (a1, b1),主节点 2 上也要对该记录进行修改 (a0, b0) => (a2, b2)。由于节点 1 需要把对 B 的修改转发到节点 2, 节点 2 需要把对 A 的修改转发到节点 1,A 和 B 最终至少面临 4 种可能的状态组合: (a1, b1), (a1, b2), (a2, b1), (a2, b2),很难确定究哪一种组合是正确的。

    作者回复: 👍👍

    
    6
  • 不吃辣👾
    2022-04-05
    思考题:类似多线程中对两个有约束条件的变量同时修改一样,造成约束条件失效。这里约束条件是同一行数据是原子不可分割的整体。老师,那遇到这种情况,多线程用锁或者final解决的,在垂直分片的多主复制用的什么办法解决的呢?如果用分布式锁,是不是依然退化成主从复制了。难道增加自增id维度,小id的不能覆盖大id。期待老师回复。

    作者回复: 对的,多主复制的冲突是没有办法避免的,使用自增 ID 处理冲突是可以的,不过自增 ID 不能由各主节点生成,需要全局的自增 ID。

    
    1
  • 毛哥
    2022-03-24
    ddia
    
    4
  • X
    2023-03-10 来自北京
    系统的每一次新增,修改都分配唯一id并且id是有绝对时序的,复制时保证时序是不是就没问题了?
    
    
  • HappyHasson
    2022-09-22 来自广东
    多主复制 在现实中 文中提供的方案基本都不能用,还得paxos raft才有用。。
    
    
  • 绘世浮夸 つ
    2022-05-12
    老师能不能讲讲自定义冲突目前都有哪些方法呢
    
    