蘋果重新開源分布式資料庫FoundationDB,已在內部使用三年

2021-01-12 創業家

策劃編輯|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前線,創業家系授權發布,略經編輯修改,版權歸作者所有,內容僅代表作者獨立觀點。

相關焦點

  • 蘋果FoundationDB 開源 CloudKit 使用的數據層
    PingWest品玩1月15日報導,引述Macx的消息,蘋果公司旗下的 FoundationDB 今天宣布,將開源 FoundationDB 數據記錄層,它提供了基於 FoundationDB 的關係資料庫語義,具有模式管理,索引功能和「豐富的查詢功能集」。
  • 華為:AI-Native分布式資料庫GaussDB——2020年6月開源
    簡介華為GaussDB是一個企業級AI-Native分布式資料庫。華為GaussDB將AI能力植入到資料庫內核的架構和算法中,為用戶提供更高性能、更高可用、更多算力支持的分布式資料庫。特點高可靠全組件HA,無單點故障。
  • 騰訊Tendis 正式開源:企業級分布式高性能 KV 存儲資料庫
    IT之家12月22日消息 近期,騰訊宣布企業級分布式高性能 KV 存儲資料庫 Tendis 正式開源。IT之家獲悉,Tendis 是騰訊互娛 CROS DBA 團隊 & 騰訊雲資料庫團隊自主設計和研發的分布式高性能 KV 存儲資料庫,兼容 Redis 核心數據結構與接口,可提供大容量、低成本、強持久化的資料庫能力,適用於兼容 Redis 協議、需要大容量且較高訪問性能的溫冷數據存儲場景。Tendis 目前已經被應用到騰訊內、外部大型項目中。
  • PingCAP 開源 TiDB 自動化部署運維工具 TiDB Operator
    TiDB 和 Kubernetes 簡介TiDB 作為一個開源的分布式資料庫產品,具有多副本強一致性的同時能夠根據業務需求非常方便的進行彈性伸縮,並且擴縮容期間對上層業務無感知。TiDB 包括三大核心組件:TiDB/TiKV/PD。
  • 細說分布式資料庫的過去、現在與未來
    在資料庫發展早期階段,這兩個需求其實不難滿足,比如有很多優秀的商業資料庫產品,如Oracle/DB2。在1990年之後,出現了開源資料庫MySQL和PostgreSQL。這些資料庫不斷地提升單機實例性能,再加上遵循摩爾定律的硬體提升速度,往往能夠很好地支撐業務發展。
  • 雲時代的分布式資料庫:阿里分布式資料庫服務DRDS
    於是,我們又進行了架構升級,這次是以兼容性為核心目標的系統升級工作,希望能夠在分布式場景下支持各類複雜的SQL,同時也將阿里這麼多年來在分布式事務上的積累都帶到了DRDS裡面。這次架構升級,我們的投入史無前例,用了三年多才將整個系統落地完成。我們先在內部以我們自己的業務作為首批用戶上線,經過了內部幾百個應用的嚴酷考驗以後,我們才敢拿到雲上,給到我們的最終用戶使用。
  • DotNet.CAP,或是.NET唯一靠譜的開源分布式框架!
    本文包含以下內容,共1300字,閱讀完大約需要3分鐘:1、什麼是分布式事務2、多種分布式事務解決方案3、.NET Core分布式事務推薦4、實戰CAP分布式事務主流關係型資料庫都支持資料庫事務,能保障單資料庫實例內的ACID,然而如果一次操作中涉及到多個資料庫實例
  • 白碩:區塊鏈+開源資料庫≥商業資料庫
    從如何將區塊鏈與開源資料庫,到鏈改、無幣區塊鏈,再到對於聯盟鏈、公有鏈的架構建議,在近日2018中國區塊鏈大會上,中國分布式總帳基礎協議聯盟技術委員會主任、中科院博士生導師白碩分享了滿滿乾貨。雷鋒網AI金融評論了解到,白碩認為,中國沒有成熟可用的商業資料庫,一直是一大痛點,而實際上,可能有個很好的思路實現去IOE,「區塊鏈+開源資料庫,這兩個結合可以大於等於商業資料庫……區塊鏈來做日誌,做存儲過程,做高可用支持,開源資料庫做查詢、做數據困難,做高性能的支持,把這兩個耦合起來,相當於商業資料庫的能力,但是花的錢很少,成本很低。」
  • 一篇文章,掌握所有開源資料庫的現狀
    近幾年的開源社區,新的思想和方案層出不窮,我將總結一下近幾年一些主流的開源資料庫方案,及其背後的設計思想以及適用場景。本人才疏學淺如有遺漏或者錯誤請見諒。本次分享聚焦於資料庫即結構化數據存儲 OLTP 及 NoSQL 領域,不會涉及 OLAP、對象存儲以及分布式文件系統。
  • 蘋果招兵買馬,或在開源領域有大動作?
    從這則招聘信息中,我們可以推斷出蘋果內部關注開源的新趨勢。「封閉」的蘋果在很多人的印象裡,蘋果的主要業務都與開源大相逕庭。如蘋果獨一無二的 iOS 系統,在業內獨樹一幟,成就了蘋果手機的今天。然而 iOS 不是開源的系統,甚至連應用市場都沒有像 Android 那樣放開。
  • CallidusCloud 收購多模型資料庫技術 OrientDB
    OrientDB 是首個多模型開源 NoSQL 資料庫,將圖支持、文件、關鍵值、地理空間、面向對象和反應式的模型相結合,成為一個可擴充的資料庫。CallidusCloud 在提供給多層次市場營銷行業的 Direct Selling Pro 解決方案中使用這種下一代的資料庫,並計劃利用這一創新的新技術強化 CallidusCloud Lead to Money 套件中的其他應用程式。憑藉其速度、靈活性和可拓展性,多模型及圖資料庫技術獲得許多世界領先的消費者及企業採用。
  • 十分鐘看懂時序資料庫(V)- 分布式計算
    作為物聯網領域數據存儲的首選,時序資料庫也越來越多進入人們的視野,而早在2016年7月,百度雲在其天工物聯網平臺上發布了國內首個多租戶的分布式時序資料庫產品TSDB,成為支持其發展製造,交通,能源,智慧城市等產業領域的核心產品,同時也成為百度戰略發展產業物聯網的標誌性事件。
  • LinkedIn 開源多媒體對象存儲資料庫 Ambry
    LinkedIn近日開源了多媒體對象存儲資料庫LinkedIn過去使用的是一種閉源技術我們開始嘗試在市場中尋找更好的替代方案,包括各種分布式文件系統、存儲一體機、雲服務和內部部署方案都考察過,通過權衡我們的設計目標和得失後發現,我們需要自己開發一個能更好滿足我們需求的方案——Ambry,如今Ambry已經在LinkedIn的生產環境中使用多年,表現良好。
  • 微服務 SpringCloud Alibaba Seata處理分布式事務
    二、Seata簡介1.是什麼Seata 是一款開源的分布式事務解決方案,致力於在微服務架構下提供高性能和簡單易用的分布式事務服務。官網地址:http://seata.io/zh-cn/2.主要功能一個典型的分布式事務過程分布式事務處理過程:一ID+三組件模型
  • 而在開源軟體的使用中,資料庫是香餑餑
    打開APP 在開源軟體的使用中,資料庫是香餑餑 卿雲 發表於 2020-12-21 13:51:30 根據中國信息通信研究院(以下簡稱信通院)發布的《開源生態白皮書(2020年)》,2019年我國企業已經使用開源技術的企業佔比為87.4%,同比增長10.7%,我國企業使用開源技術已成主流。 而在開源軟體的使用中,資料庫是香餑餑。 根據信通院的數據,我國超半數企業使用開源軟體應用於資料庫方向。
  • 分布式資料庫——未來行業應用主流資料庫
    1、分布式資料庫是適應新技術及行業應用發展的需要分布式資料庫可以認為是由位於不同位置的多個計算機節點通過網絡互相連接,共同組成一個完整的、全局的、邏輯上集中、物理上分布的資料庫。未來,傳統的基於單物理伺服器節點的資料庫將在更多的場景下被分布式資料庫取代,分布式資料庫應用前景將越來越廣。
  • DB-Engines:2017年1月全球資料庫排名TOP 20
    2013年以來開源資料庫與商業資料庫的發展趨勢分析上圖是2013年以來開源資料庫與商業資料庫的發展趨勢分析,整體大家能明顯感受到開源資料庫都呈良好的發展勢頭,而商業資料庫的市場被慢慢吞食,但從近一年發展趨勢來看,開源資料庫並沒有完全打敗商業資料庫的勢頭,未來很長時間還會是激烈競爭狀態,目前商業資料庫主要是靠Oracle、SQLServer在支撐。
  • Docker進階-容器監控cAdvisor+InfluxDB+Granfana
    概述前面文章介紹使用docker compose組合應用並利用scale快速對容器進行擴容。InfluxDBInfluxDB是用Go語言編寫的一個開源分布式時序、事件和指標資料庫,無需外部依賴。前面說到,CAdvisor默認只在本機保存最近2分鐘的數據,為了持久化存儲數據和統一收集展示監控數據,需要將數據存儲到InfluxDB中。
  • CockroachDB 更改開源許可證
    Cockroach Labs這家總部位於紐約的資料庫公司開發出了知名的開源CockroachDB資料庫,它將在下一個版本的開源項目中更改許可協議的條款,禁止像AWS這樣的雲提供商將該項目的商業版本作為一項服務來提供。
  • 金融企業選擇與應用分布式資料庫的7個核心問題
    曾在多個知名企業任職產品經理,主導或參與多款業內知名的B端產品從0到1過程,部分主導產品已實現同類產品佔有率第一。接手騰訊分布式資料庫以來,主要負責騰訊雲分布式資料庫功能策劃、市場能力建設、服務支撐能力建設和團隊建設等。 大家好,我是來自騰訊雲的蘇強。