策劃編輯|Natalie
編譯|核子可樂
FoundationDB 是「一個能在多集群伺服器上存放大規模結構化數據的分布式資料庫」。該資料庫系統專注於高性能、高可擴展性和不錯的容錯能力。這意味著使用該資料庫的項目運行起來更高效且維護成本低。
FoundationDB 由戴夫·羅森塔爾(Dave Rosenthal)、戴夫·謝勒(Dave Scherer)、和尼克拉維澤(Nick Lavezzo)於 2009 年開發,旨在建立一個符合 ACID 約束的 NoSQL 資料庫(ACID 是一種即使在發生錯誤時也保證數據完整性的資料庫機制)。
蘋果公司在 2015 年收購了 FoundationDB,並可能早已將此資料庫用於 iCloud 雲存儲服務。在一份 CloudKit 的使用說明中,蘋果工程師提到了對於 NoSQL 資料庫的使用,使得應用開發者們可以以一種通用的且易操作的方式在不同設備間同步用戶數據。CloudKit 為許多 iCloud 服務提供數據存儲服務,包括 iOS 備份、照片同步、iWork 辦公、和 iCloud 網盤。
以系統封閉著稱的蘋果公司之所以會對 FoundationDB 這樣一個小團隊產品產生興趣,是因為蘋果在大數據時代繼續填補技術基因,而 FoundationDB 作為一款增強型 NoSQL(類似鍵值資料庫 Hbase,同時又能夠運行 ACID 交易),對蘋果來說,正好藉此提升自己的雲端服務能力。
但這在當時引發了開源社區的不滿,開源生態的開發者和參與者紛紛對商業收購開源項目的行為表示擔憂和不安,認為這樣對於開源項目的貢獻者和參與者來說加大了風險,甚至對開源項目本身也是一種傷害甚至扼殺。
就在今天凌晨,蘋果宣布 FoundationDB 分布式資料庫重新開源!
這個消息在 HackerNews 上引發了轟動,消息發出僅 1 小時就收穫了 300 多支持和 78 個評論,截至發稿時間,這個報導已經得到了 1381 個支持和 278 個評論。網友wwilson 表示:
這個消息真是令人振奮!FoundationDB 是我使用過的最出色的軟體!對於任何希望構建分布式系統的用戶而言,這都是一套卓越的原型方案。
簡而言之,FoundationDB 是一套大規模可擴展且速度極快的分布式資料庫,擁有最出色的測試與容錯能力。目前,蘋果及多家其它大型廠商都在廣泛使用 FoundationDB。
但真正有趣的部分在於,它能夠為其它需要可擴展性以及存儲一致性的系統提供極為高效的底層接口。在 FoundationDB 公司,我們的初衷在於利用 FoundationDB 編寫出多種不同資料庫前端,且其分別使用不同的數據模型與查詢語言(包括 SQL 資料庫、文檔資料庫等),且保證這些語言將數據存儲在同一底層系統之內。在此基礎上,客戶可以隨意選擇自己需要的資料庫前端,甚至同時選取多種,但仍只需面對同一種分布式資料庫方案。
這樣的思路無疑富有遠見。在 FoundationDB 上能夠輕鬆實現 Zookeeper API,這進一步幫助用戶減輕了負擔。另外,FoundationDB 也能夠完美地解決在分布式文件系統上進行元數據存儲的需求,分布式任務隊列同樣沒有問題。用戶甚至能夠利用其它具備更強伸縮能力的方案替換原有 Lucene/ElasticSearch 索引!
正因為如此,蘋果公司才睿智地選擇了 FoundationDB。蘋果是一家專注的企業,他們沒有理由親手動手為各類數據編寫不同存儲層。而在選擇 FoundationDB 並投入開發資源之後,FoundationDB 社區所產出的每一種產品都將給蘋果公司帶來回報。這真的是一種理想的良性循環。
FoundationDB 官網聲明
新的篇章
從今天起,FoundationDB 將以開源項目的姿態迎來新的發展篇章。
FoundationDB 是一款分布式數據存儲方案,在設計當中充分考慮到商用硬體集群的部署需求。這些集群允許用戶隨意添加機器並實現良好擴展,自動實現硬體故障恢復,同時提供簡單的 API。其鍵 - 值存儲支持全面全局、跨行 ACID 事務,從而提供最高級別的數據一致性水平。更具體地講,如此強大的一致性將使大家的應用程式代碼更簡單、數據模型效率更高,且故障模式更易於處理。
最重要的是,FoundationDB 已經非常成熟,它已在蘋果內部經過多年的開發與生產使用。我們計劃推動 FoundationDB 轉型為社區項目,當然也熱烈歡迎各位的積極參與。
強大的抽象能力
我們相信 FoundationDB 將成為下一代分布式資料庫的實現基礎。自 2010 年誕生以來,整個資料庫世界就在逐步與 FoundationDB 保持一致,從而支持內部數據的一致性。
FoundationDB 的發展願景從一套簡單而強大的內核開始,而後逐步添加「層」對其進行擴展。這套開源鍵 - 值存儲資料庫的核心,專注於整合那些無法被寫入至各層中的功能。而各層將通過添加功能以模擬特定類型的數據,同時處理其訪問模式以實現核心擴展。
FoundationDB 的基礎架構,包括其對層概念的使用,顯著補充了系統可伸縮性與可管理性方面的最佳實踐。通過在單一集群上運行多個層(例如文檔存儲層與圖形層),用戶可以將特定應用程式與最佳數據模型進行匹配,從而降低基礎設施的運行成本,最終幫助企業節約運營與技術類開銷。
通過對 FoundationDB 核心進行開源,我們預計層的具體數量與種類將迅速增加。而著眼於 FoundationDB 社區,我們會根據核心本身及其支持的層生態系統推動相關發展。
構建開放社區
通過對 FoundationDB 項目進行開源,我們的目標是建立起一個開放的技術社區。一切主要發展成果都將在開放背景下完成。我們已經發布了一份概述性文件,旨在確保工作透明度並充分考慮社區成員的意見。此外,我們還採取一系列步驟以制定項目治理方式,希望藉此提供一套基礎架構,幫助社區成員們積極參與其中並在決策中發揮更大的話語權。
我們希望為 FoundationDB 建立起健康且活躍的社區。為此,我們還通過了以貢獻者約定為基礎的行為準則,其中闡述了我們鼓勵及禁止的各類行為。
我們期待著您的參與。您可以通過以下幾種方式加入我們的社區:
在 FoundationDB 社區論壇上提問:forums.foundationdb.org。我們在這裡討論各類與用戶相關的問題(例如如何使用某功能)以及開發問題(如何深入挖掘 FoundationDB 核心並調整某功能)。來跟大家打個招呼吧!
通過 GitHub 上報 bug 以改善這款軟體。
為核心軟體與文檔提供貢獻(請參閱項目的貢獻指南)。
現在就開始吧!
FoundationDB 當前最新版本為 5.1.5, 目前 FoundationDB 原始碼已經公布於:
github.com/apple/foundationdb
請參閱指南:,以了解與如何安裝、使用以及開發 FoundationDB 相關的基礎知識。也可以訪問 www.foundationdb.org/download/ 獲取適用於 macOS、Windows 以及 Linux 的二進位安裝程序。
如果你對 FoundationDB 感興趣,快打開該項目的 GitHub 地址體驗一下吧!歡迎與 AI 前線分享你的使用感受!
機器學習宗師麥可·喬丹:AI 革命尚未發生
新書推薦
每個技術人成長到一個階段,都會思考:下一步到底要怎麼走?
堅持走技術專業路線,還是轉向技術管理?
轉型路上可能會遇到哪些坑?如何管理技術團隊?
職業生涯如何突破瓶頸,建立個人影響力?
計算機博士,Airbnb 技術經理朱贇通過新書《躍遷:從技術到管理的矽谷路徑》告訴你,從技術到管理如何達到最優解。4.20 首發特惠,原價 59 元,首發價 49 元
AI前線
緊跟前沿的AI技術社群
本文來自AI前線,創業家系授權發布,略經編輯修改,版權歸作者所有,內容僅代表作者獨立觀點。