数据密集型应用系统设计 读书笔记 第二部分(下):一致性与共识

本文深入探讨了数据密集型应用中的一致性和共识问题,结合《数据密集型应用系统设计》第二部分下篇内容,分析了在分布式系统中如何确保数据的一致性,并讨论了多种达成共识的算法及其应用场景。
摘要由CSDN通过智能技术生成
一致性与共识:
(1)一致性保证:尽管可线性化(一致性级别)与可串行化(事务级别)属于完全不同的概念(事务隔离主要是为了处理并发执行事务时的各种临界状态,而分布式一致性主要针对延迟和故障等问题来协调副本之间的状态),但是基于两阶段加锁和实际串行执行的可串行化是典型的可线性化:不存在并发,且任意两个操作都具有严格的先后顺序。而基于快照隔离的可串行化只保证了因果一致性:无法区分并发写的先后顺序,但是可以保证快照中能看到所有已提交的事务,因一定提交在果之前,只要能看到果,则必然能看到因。
(2)可线性化:
[1]可线性化的典型场景:<1>加锁与主节点选举:主节点选举的常用方法是锁,加锁过程必须是可线性化的,每个节点都需要对哪个节点持有锁达成共识;<2>约束与唯一性保证:需要所有节点对某个最新值达成一致。
[2]实现可线性化的系统:<1>主从复制:部分实现可线性化。在主从复制中,主节点可能存在并发写,但是提供给从节点的复制日志是具有顺序保证的,主从复制通过全序广播实现顺序一致性。主从复制至少保证了顺序一致性,而如果从主节点或者同步的从节点读,则保证了可线性化。<2>共识算法:实现可线性化。共识算法描述了所有节点(对某一个值)达成共识的过程,采用共识算法可以解决分布式系统中网络和时钟不可靠的问题,构建可线性化的系统。共识算法没有一致性级别的区分,可以基于共识算法构建可线性化的系统。<3>多主复制:不可线性化。多主复制存在并发写入,也没有写入顺序的保证(无法定义出操作的全序关系),因此是不可线性化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值