复制

分布式一致性核心问题——复制

  • 分区:将数据集划分为更小的不同的独立集合; 这是用来减少数据集增长的影响,提高性能

  • 复制:在多台计算机上复制相同的数据; 允许更多的服务器参与计算,主要是为了通过为数据新副本提供额外的计算能力和带宽,从而提高性能;因为数据的独立副本必须在多台计算机上保持同步,这意味着确保复制遵循内存一致性模型

为什么核心问题是复制:分布式存储相关的系统都必须用某种冗余的方式在廉价硬件的基础上搭建高可靠的存储,而冗余的基础就是复制(多副本策略), 一份数据存多份. 多副本保证了可靠性, 而副本之间的一致, 就需要各种分布式共识算法来保证.

复制是一个组通信问题。需要考虑哪种通信方式可以为我们提供我们想要的性能和可用性特性?面对网络分区以及节点同时发生故障,我们如何确保容错性,持久性以及避免分歧。

基本复制方式

  • 同步复制:强持久化保证,系统响应慢,对网络延迟敏感

  • 异步复制:弱持久化保证,性能高,对网络延迟更加宽容

基本复制算法

基本复制算法大致可以分为两类:

  • Replication methods that prevent divergence (single copy systems) 防止差异的复制方式(单拷贝系统)

  • Replication methods that risk divergence (multi-master systems) 有差异风险的复制方式(多主系统)

最后更新于