NoSQL中的分布式、容錯事務

jopen 9年前發布 | 20K 次閱讀 NoSQL數據庫 NOSQL

原文  http://www.infoq.com/cn/news/2015/01/distributed-fault-tolerant-nosql

5年前,術語NoSQL才 剛剛開始出現 ,那時 很多 NoSQL 數據庫 的版本都還不到1.0,對于 CAP理論 來說,眾多NoSQL數據庫都選擇了可用性要高于一致性的做法。 ACID 是一個沉重的負擔,而 BASE 則被認為是未來的發展方向。時至今日,社區已經逐漸成熟起來,一些天花亂墜的宣傳也都不見了蹤跡,新一輪的NoSQL數據庫開始尋求重新定義我們對NoSQL的期待,隨之而來的是分布式、容錯事務又開始出現在了人們的視野中。

向分布式、容錯事務領域的進軍起始于2012年秋季,那時Google發布了 Spanner 數據庫。Spanner是個全局分布式、容錯、事務型的NoSQL數據庫;這一系列屬性在之前則被認為是自相矛盾的。不過,Google擊碎了人們的這種誤解,宣稱他們已經在生產環境下使用該數據庫一年多時間了。

就在Google宣布Spanner數據庫的幾個月后, HyperDex 團隊默默地發布了 Warp 擴展,它為HyperDex帶來了分布式、容錯的事務功能。這標志著對這種事務的首個開源實現的發布。趨勢開始發生了轉移,不過還有很長的路要走。

2013年5月, Kyle KingsburyRICON 上談到了 Jepsen 。在演講中,Kingsbury披露了各種NoSQL數據庫在各種失敗情況下的一系列缺陷。甚至諸如 MongoDBRedis (一般情況下人們都認為他們可以保證一致性)這樣的數據庫都無法信守其承諾。Kingsbury的工作使得社區開始更多地關注于測試與形式化設計,在選擇可用性優于一致性時能更好地理解這種折衷。

出于對一致性的密切關注, FoundationDB 發布了其鍵值存儲的1.0版,這是第一個擁有分布式、容錯事務支持的私有NoSQL數據庫。FoundationDB團隊深刻理解嚴格測試的必要性,同時對其測試框架 Lithium 給予了高度評價,這使得FoundationDB能夠確保ACID特性。后來他們又可以通過 Jepsen 對FoundationDB進行 測試

去年又涌現出了兩款將支持分布式、容錯事務作為設計目標的開源NoSQL數據庫。CockroachDB嘗試模仿Spanner的地理位置復制事務,它于去年初啟動; Treode 則在去年6月發布了最初的0.1版。這兩個項目都認真地采取了形式化設計,并吸取了很多分布式系統的學術研究成果。

這些事務型數據庫已經逐步對NoSQL世界產生了影響,我們看到一致性的NoSQL數據庫正在不斷改進自己的承諾。比如說,Redis就面臨著 持續的壓力 ,在構建器分布式功能時要求專注于形式化設計與測試。最近, Tokutek 為MonogoDB發布了其新的Ark一致性算法。Ark基于 Raft 協議,旨在修復MongoDB已知的一致性問題。

雖然現在還是Treode與CockroachDB的早期發展時段,但已經有 不少公司 在生產環境中使用了FoundationDB與HyperDex Warp。分布式、容錯事務將會扎根于NoSQL,我們將會看到其產生的影響。

查看英文原文: Distributed, Fault Tolerant Transactions in NoSQL

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!