副本一致性思考的角度

来源:互联网 发布:看门狗2唐人街重要数据 编辑:程序博客网 时间:2024/04/29 20:33
副本一致性思考的角度

 
    A. 强一致性和弱一致性的本质区别是,当进程访问系统时是否允许副本之间存在不一致
 
 
    B. 观察分布式系统一致性可以从这三个方面的组合来看:
    多个线程还是一个线程,同一时刻还是不同时刻,同一副本还是不同副本。
 
    组合的结果共有6种:
    
    一个线程,同一时刻,访问同一副本,    无效的。
    一个线程,同一时刻,访问不同部分,    无效
    一个线程,不同时刻,访问同一副本,    单机模式
    一个线程,不同时刻,访问不同副本,    单用户多终端模式
    多个线程,同一时刻,访问同一副本,    并发访问
    多个线程,同一时刻,访问不同副本,    要看线程数与副本数的比例,以及具体的访问模式,既可以是1对1,也可以是N对1
    多个线程,不同时刻,访问同一副本,    队列,串行化
    多个线程,不同时刻,访问不同副本,    也要具体分析 
 
 
    C. 单调读、单调写、读写一致性、写读一致性,这四类是否组成了最终一致性的全部?
 
    我认为不是。这四种一致性,都基于同一个假设:
 
    在副本应用其它节点更新这个过程中,用户不对同一一致性单元进行更新。
 
同步系统在用户再次访问同一一致性单元前,完成对他的更新,用户访问的是不同副本节点。
 
    最终一致性的定义,没有约束,节点的一致状态同步要在用户下一次访问前完成。所以我认为,这四种
 
类型并不是最终一致性的全部。只要在用户不再进行更新后,节点最终能获得一致性,即是最终一致性。
 
同步的过程中,用户最终将看到节点的一致状态,没有特定的时间约束。
 
    比如,使用Wiz在家编辑了文件,并同步到了云端。但来到学校后,因为网络中断,我看到将仍是旧版本的数据,
 
这就不符合读写一致性。
 
    这个四种一致性,是一种参考,如果你开发的同步系统想提供某种一致性,就需要对用户的访问有所限制。
 
比如,在某个一致性单元完成同步前,不允许用户访问。
原创粉丝点击