107-分布式协议与算法实战 韩健

https://time.geekbang.org/column/intro/100046101

Keywords

BFT(Byzantine fault tolerance),CFT(Crash fault tolerance)

TCC/XA-DTP/2PC

All/Quorum/One/Any

Basic Paxos/Multi Paoxs(Chubby,Spanner)

Raft(Etcd,Consul,CockroachDB)

Raft(Leader Select/Log Replication/Membership change(Joint Consensus/Single-Server Changes))

logcabin(joint consensus)

Hashicorp Raft:Consul,IPFS,InfluxDB

https://www.consul.io/docs/architecture/consensus

区块链共识机制:POW、POA、POS、DPOS、PBFT、DBFT

ZAB:基于主备的原子广播协议-2007年

一致性算法时间顺序 Basic Paxos -> Multi Paoxs -> ZAB -> Raft

Raft+:配置中心,名字路由,KV存储

Notes

实现AP比CP复杂。

MuitiPaxos没有考虑顺序问题,只是对共识,而ZAB解决了顺序问题,后面Raft也考虑顺序。

Wiki

https://en.wikipedia.org/wiki/Eventual_consistency

https://en.wikipedia.org/wiki/Gossip_protocol

https://en.wikipedia.org/wiki/Byzantine_fault

https://en.wikipedia.org/wiki/Replication_(computing)

Person

Nancy Lynch https://people.csail.mit.edu/lynch/

Seth Gilbert https://www.comp.nus.edu.sg/~gilbert/

Eric Brewer https://people.eecs.berkeley.edu/~brewer/

Leslie Lamport http://www.lamport.org/

Werner Vogels https://www.allthingsdistributed.com/

Paper

The Byzantine Generals Problem

Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services

Practical Byzantine Fault Tolerance:https://pmg.csail.mit.edu/papers/osdi99.pdf

Zab: High-performance broadcast for primary-backup systems

Product

https://www.influxdata.com/time-series-platform/telegraf/

Cassandra: Read Repair, Hinted Handoff

https://www.influxdata.com/blog/eventual-consistency-hhq/

https://docs.amazonaws.cn/en_us/amazondynamodb/latest/developerguide/Introduction.html

https://cassandra.apache.org/doc/latest/cassandra/architecture/dynamo.html#tunable-consistency

https://docs.influxdata.com/enterprise_influxdb/v1.9/concepts/clustering/

zilliqa: https://dev.zilliqa.com/docs/basics/basics-zil-consensus/

sawtooth: https://sawtooth.hyperledger.org/docs/pbft/nightly/master/using-pbft-consensus.html

https://zookeeper.apache.org/doc/current/zookeeperInternals.html#sc_consistency

influxdb:meta node:CP,raft data node:AP,hinted-handoff,quorum,anti-entropy,自定义副本

Book

Concurrency Control and Recovery in Database Systems

Site

https://www.allthingsdistributed.com/2008/12/eventually_consistent.html

https://www.influxdata.com/blog/multiple-data-center-replication-influxdb/

https://www.influxdata.com/blog/influxdb-clustering-design-neither-strictly-cp-or-ap/

https://github.com/influxdata/influxdb-comparisons

C: https://github.com/willemt/raft C++:https://github.com/logcabin/logcabin

https://github.com/hashicorp/raft-boltdb