分佈式系統一致性算法備註

1. 傳統算法:quorum NRW, 2pc, 3pc等git

2. Paxos算法github

論文:《paxos made simple》, 《The Part-Time Parliament算法

微信已經基於paxos開發了一套組件:sql

phxpaxos框架源碼, 租約型paxos算法實現數據庫

https://github.com/Tencent/phxpaxos微信

Phxsql: 基於phxpaxos框架開發的分佈式sql數據庫,框架

https://github.com/Tencent/phxsql分佈式

Phxqueue: 基於phxpaxos框架開發的分佈式消息隊列性能

https://github.com/Tencent/phxqueuespa

 Paxosstore,基於無租約型paxos算法實現的Nosql分佈式數據存儲系統,目前部分開源了算法的核心部分。

https://github.com/Tencent/paxosstore

 

paxos活鎖問題

多個paxos group同時prepare,容易出現活鎖問題,既一段時間內任意一臺機器都不能得到大多數機器的接受。解決方法是先肯定一個master,強一致選主,只有master能夠prepare

 

2.  raft等算法

paxos更加容易理解容易實現,強化leader地位,限制日誌id連續性,可是也會必定程度上影響性能。

 

論文:《In Search of an Understandable Consensus Algorithm (Extended Version)

 

較著名的實現有etcd, cockrouchDB,tidb, kubernetes

 

etcd源碼:

 

https://github.com/etcd-io/etcd

 

goraft源碼:

 

https://github.com/goraft/raft

相關文章
相關標籤/搜索