分布式理论(三)| 青训营笔记

60 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第4天

MVCC

数据处于中间状态用锁来保护,悲观锁、乐观锁使用场景不同 image.png

每个数据中心有一个和卫星校准时钟:TrueTime API
开源数据库:软件方式实现时间戳,TSO,需要考虑低延迟高性能 中心化服务器,分发时间戳,提交事务前都先去获得时间戳,4阶段提交 image.png

共识协议

Quorum NWR

分布式模型:
N份数据的副本,一次写至少W份副本被更新(其余的副本可以异步更新),一次读至少读R份副本的值
反证:如果 R <= N - W,则可能读到旧的还未更新的副本数据,则数据不一致 不被覆盖就没有问题,适合append only的系统,不适合KV、数据库系统 把CAP选择交给用户:更改W、R的值

image.png

RAFT协议

分布式一致性算法 image.png

日志:追加写,不会覆盖数据
term任期号是精髓
commited:只用写两份,leader和一个follower,读只用读一份,从leader读 applied:两阶段提交 image.png

image.png

image.png (没听懂!继续回去看!)

mapreduce:
调度的中心服务
容错机制:map发生故障,reducer故障(重新跑整个job)

分布式KV:
存储大规模KV对,根据key划分为不同region,每个region分发到一个节点
在线存储服务,变化的 弹性的诉求: image.png raft开源实现,raft learner原理