分布式系统的数据一致性和复制

	/**
     * @一致性和复制
     *      @进行复制的原因
     *          @数据复制可以提高系统的可靠性。如果一个文件系统已经实现数据复制,当一个副本损坏之后,文件系统只需要转换到另一个数据副本就可以继续工作
     *          @数据复制可以提高系统性能,当区域和数量线性扩展时,通过对服务器的复制便意味着对数据的复制,更好的利用多集群处理能力
     *
     *      @作为扩展技术的复制
     *          @可扩展问题往往以性能问题的形式出现
     *              将数据和对象的副本放置在使用他们的进程的附近,可以减少访问时间,提高性能,从而解决可扩展性问题。
     *
     * @以数据为中心的一致性模型
     *      @一致性模型实质上是进程和数据存储之间的一个约定
     *          即如果进程同意遵守某些规则,那么数据存储将正常运行,
     *
     *      @持续一致性
     *          暂时性的把这些更新应用到一个本地副本,等待所有副本达成全局一致
     *          因此可能需要回滚某些更新,在成为永久更新之前,以不同的顺序进行更新
     *
     *          @一致性单元
     *              一致性单元表示的是其一致性可以度量的单元
     *
     *      @一致的操作顺序
     *          @顺序一致性
     *              时间轴的水平绘制方式————从左到右
     *
     *          @因果一致性
     *              所有进程必须以相同的顺序看到具有潜在因果关系的写操作。
     *              不同机器可以以不同的顺序看到并发的写操作
     *
     *          @分组操作
     *              @在一个进程对被保护的共享数据的所有更新操作执行完成之前,不允许另一个进程执行对同步化变量的获取访问
     *              @如果一个进程对某个同步化变量正进行互斥模式访问,那么其他进程就不能拥有该同步化变量,即使是非互斥模式也不行
     *              @某个进程对某个同步化变量的互斥模式访问完成后,除非该变量的拥有者执行完操作,否则任何其他进程对该变量的下一个非互斥模式访问也是不允许的。
     *
     *          @一致性与相干性
     *              @一致性模型描述的更多的是多个进程并发的作用于数据的数据集
     *                  如果该数据集遵守模型的描述的规则,那么一致性
     *
     *              @数据一致性关注的是数据项集,而相关性模型关注的只是单个数据项
     *                  假设某个数据项在多个地方被复制,当各个副本遵守相关模型定义的规则时,我们称之为相关的
     *
     * @以客户为中心的一致性模型
     *          @最终一致性
     *              这种形式——如果一段很长时间内没有更新操作,那么所有的副本将逐渐的称为已执行的
     *              如果没有更新操作,所有副本逐渐成为相互完全相同的副本
     *              @最终一致性要求更新操作被保证传播到所有副本
     *
     *          @单调读
     *              如果一个进程读取数据项x的值,那么该进程对x执行的任何后续读操作将总是得到第一次读取的那个值或更新值
     *
     *          @单调写
     *              一个进程对数据项x执行的写操作必须在该进程对x执行任何后续写操作之前完成
     *
     *          @读写一致性
     *              一个进程对数据项x执行一次写操作的结果总是会被该进程对x执行的后续读操作可见。
     *
     *          @写读一致性
     *              同一进程对数据项x执行的读操作之后的写操作,保证发生在与x读取值相同或比之更新的值上
     *
     * @复制管理
     *      @副本服务器的位置
     *          管理和商业问题而不是技术优化问题主要,对客户和网络属性的分析有助于做出决策。
     *
     *      @内容复制与放置
     *          @永久副本
     *              构成分布式数据存储的副本的初始集
     *          @服务器启动的脚本
     *              是为了提高性能而存在数据存储副本,改副本是在初始化数据存储的所有者创建。
     *          @客户启动的副本
     *              客户初始化时候创建的副本——普遍认为是客户高速缓存
     *              高速缓存的管理完全是有客户负责,客户从中获取副本而不负责保持高速缓存数据的一致性
     *              客户可以依靠数据存储通知缓存什么时候过时
     *
     *      @内容分发
     *          @状态和操作
     *              一个重要的设计问题是,将要实际传播哪些信息?
     *                  @只传播更新的通知
     *                  @把数据从一个副本传递到另一个副本
     *                  @把更新操作传播到其他副本
     *
     *              @无效化协议
     *                  使用传播通知方式,通知其它副本已经发生了更新操作,其他副本包含的数据不在有效。
     *
     *              @复制协议
     *                  不传送任何参数,副本自己知道应该执行的更新操作
     *
     *          @推拉协议
     *              @基于推协议
     *                  基于服务器协议
     *                  不需要其它副本请求更新,这些更新就会传播到那些副本里
     *                  永久副本和服务器启动副本之间通常基于推的方式
     *
     *              @基于拉协议
     *                  一台服务器或客户请求其它服务器,向它发送该服务器此时持有的任何更新
     *
     */

图片来源《分布式系统原理和范型》

请添加图片描述
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

P("Struggler") ?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值