iNexus 0.13 發布,基于 Raft 的分布式協調組件
iNexus (簡稱ins) 是一個基于Raft協議實現的高可用的分布式Key-Value數據庫,支持數據變更通知(Watch)和分布式鎖,可用于大型分布式系統的協調工作
猛擊:https://github.com/baidu/ins
簡介
iNexus原本是百度大規模集群管理系統:Galaxy的一個組件,它的產生源于我們的業務需要一個類似于Google Chubby一樣的組件。它能提供分布式naming、lock服務,并能存儲一定規模的元數據(百GB的級別)。
iNexus的理論基礎是Raft一致性協議,這個協議主要解決了多個節點之間的數據變更一致性同步,從而可以由多個節點構成一個高可用的數據存儲集群(半數以下節點宕機不影響服務)。
iNexus實現了Raft協議的核心部分,但目前還不支持動態改變集群membership。另外,Raft的paper只論述了集群選主和數據一致性復制,iNexus結合實際需求,又加上了Watch(事件主動通知)和Lock(分布式鎖)。
本次升級主要包含以下Update:
1) 定制了底層leveldb的compact算法,從而實現高性能的repliction log的GC,可以應對持續高吞吐寫入產生的IO壓力;
2)完善了Python SDK的支持,修復對Binary String支持的一些Bug;
3)完善Trace機制,便于處理在運維中出現的偽DDOS攻擊;
iNexus在線上支撐著分布在4000+機器上的服務的發現和協調,穩定支撐著包括萬億級Linkbase在內的很多核心業務。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!