【Distributed System】分布式系统的数据一致性(Data Consistency)

Posted by 西维蜀黍 on 2019-01-09, Last Modified on 2023-09-29

什么是数据一致性(Data Consistency)

**数据一致性(Data Consistency)**其实是数据库系统中的概念。我们可以简单地把一致性理解为正确性或者完整性。

数据库事务(Database Transaction)

我们知道,在数据库系统中通常用事务来保证数据的一致性和完整性。

数据库事务,核心是数据库ACID(原子性、一致性、隔离性和持久性)属性。即对于一个数据库事务中所有的逻辑处理操作,只有这些作用在数据库上的逻辑处理操作全部都成功时,对数据库的修改才会永久更新到数据库中。若存在任何一个操作失败,对于在此之前的所有逻辑操作都会失效(即该事务被回滚)。

分布式一致性解决方案

而很多系统在实践中,使用以 Paxos 理论 为基础而衍生出来的变种和简化版。例如 GoogleChubbyMegaStoreSpanner 等系统,ZooKeeperZAB 协议,还有更加容易理解的 Raft 协议。

Paxos算法

基于消息传递且具有高度容错性的一致性算法。Paxos算法要解决的问题就是如何在可能发生几起宕机或网络异常的分布式系统中,快速且正确地在集群内部对某个数据的值达成一致,并且保证不论发生以上任何异常,都不会破坏整个系统的一致性。

Refer to https://swsmile.info/post/distributed-System-Data-Consistency-Paxos/

Raft算法

Refer to https://swsmile.info/post/distributed-System-Data-Consistency-Raft/

ZAB

分布式事务(Distributed Transaction)

https://swsmile.info/post/distributed-transaction/

Reference