hyflow-goGo 開發(fā)的高一致性分布存儲(chǔ)
hyflow-go是一款可進(jìn)行地理復(fù)制、主內(nèi)存main-memory的高一致性數(shù)據(jù)存儲(chǔ),其最大特點(diǎn)是將低延時(shí)和高事務(wù)完美統(tǒng)一。
其模板化的架構(gòu):
1. 事務(wù)層:基于commit-time事務(wù)認(rèn)證,靈活支持傳統(tǒng)數(shù)據(jù)庫(kù)的MVCC( Multi-Version Concurrency Control )和 single-versioning。能用來(lái)提供串行化serializability 或EUS(Extended Update Serializability ),這些依賴于底層的順序Order層。
2.順序?qū)覱rdering Layer:一致性的協(xié)議是可插拔的,可選擇偏序(partial order)協(xié)議,如 Alvin POB, M2Paxos 或 E?Paxos;或者完整順序協(xié)議如:Multi?Paxos 和 Raft。
3.通訊層:最底層是用來(lái)進(jìn)行集群通信,背后使用 zeromq, nanomsg 或 mangos,樂(lè)觀批處理用于在保持低延遲的同時(shí)增加吞吐量。
細(xì)節(jié)技術(shù):
事務(wù)的偏序(Partial Ordering of Transactions)
通過(guò)跟蹤事務(wù)之間的沖突,能夠避免順序(串行化serializing) 非沖突事務(wù),這就增強(qiáng)了并發(fā)性,允許事務(wù)更快地提交。一些非串行化non-serializable執(zhí)行也是允許的。
多主Multi-Master
在Alvin POB 和 E-Paxos協(xié)議中,每個(gè)節(jié)點(diǎn)負(fù)責(zé)協(xié)調(diào)本地的事務(wù)組織。對(duì)于客戶端來(lái)說(shuō)只需要一個(gè)來(lái)回即可,降低了延遲。這樣,事務(wù)不必依賴一個(gè)全局的順序領(lǐng)頭者。
Fast Path
在不存在并發(fā)競(jìng)爭(zhēng)情況下, Alvin POB 和 E-Paxos 能通過(guò)使用快速仲裁通過(guò)一個(gè)來(lái)回請(qǐng)求響應(yīng)降低延遲,快速仲裁大于經(jīng)典仲裁。
Go語(yǔ)言在編寫分布式系統(tǒng)的好處是:
快速原型:hyflow-go是一款研究軟件,Go語(yǔ)言特別適合,它是高階語(yǔ)言,有很低開銷,編譯速度快,自動(dòng)內(nèi)存管理和內(nèi)置并發(fā),所有這些讓研究人員和開發(fā)人員能夠更專注于研究他們?cè)噲D解決的問(wèn)題。這樣就減少通過(guò)軟件工程的依賴約束。
高性能:Gi是快速的,能夠編譯到原生代碼,提供的高級(jí)別的內(nèi)存布局和分配的控制,內(nèi)置的分析器允許開發(fā)人員檢測(cè)和優(yōu)化代碼。
易于部署:編譯自足的靜態(tài)二進(jìn)制文件,沒(méi)有虛擬機(jī)或其他依賴設(shè)置。
