读构建可扩展分布式系统:方法与实践11强一致性

2024-09-21  本文已影响0人  躺柒
读构建可扩展分布式系统:方法与实践11强一致性.png

1. 强一致性

1.1. 最终一致数据库通过跨多台机器分区和复制数据集来获得可扩展性,其代价是要跨副本维持强数据一致性以及允许冲突写入

1.2. 另一类分布式数据库提供一种可替代的模型,即强一致性数据系统,也称为NewSQL或分布式SQL

1.3. 事务和数据一致性,是现有单节点关系数据库中每个人都熟悉的特征,消除了最终一致系统中固有的许多复杂性

1.4. 对于互联网规模的系统,最佳结果当然是提供强一致数据库的好处,同时具备最终一致系统的性能和可用性

1.5. 强一致数据库则旨在提供与单节点系统相同的一致性保证

1.6. 事务和副本一致性的解决方案由不同的技术社区在不同的时间开发

1.7. ACID事务

1.8. 具有一致性保证和支持简易单机编程的可扩展和高可用的分布式数据库是数据管理系统的“必杀技”

2. 一致性模型

2.1. 最强的一致性模型,也称为严格一致性、严格可串行化或外部一致性的模型,是数据库和分布式系统社区定义的两个最具限制性的一致性模型的组合

2.2. 可串行化

2.3. 可线性化

3. 分布式事务

3.1. 从应用程序开发人员的角度来看,将事务视为一种简化分布式系统故障场景的工具是最容易理解的

3.2. 二阶段提交

4. 分布式共识算法

4.1. 实现副本一致性,使所有客户端都能读取不同数据对象副本的一致数据值,需要副本之间就数据值达成共识或协议

4.2. Leslie Lamport的Paxos(可能是最著名的共识算法)是无领导的

4.3. 为了容错,共识算法必须在领导者和追随者都出现故障的情况下使应用程序仍能取得进展

4.4. 新的领导者选举方法因算法而异,但它们的核心要求

4.5. 容错共识算法旨在仅与法定数或大多数参与者一起运行

4.6. Raft

5. 强一致性实践

5.1. VoltDB

5.2. Google Cloud Spanner

上一篇 下一篇

猜你喜欢

热点阅读