編者:最近,蘋(píng)果公司宣布將旗下數(shù)據(jù)庫(kù)產(chǎn)品FoundationDB核心開(kāi)源,以建立一個(gè)開(kāi)放的社區(qū)。該開(kāi)源項(xiàng)目已公布在Github上米丘。FoundationDB是“一個(gè)能在多集群服務(wù)器上存放大規(guī)模結(jié)構(gòu)化數(shù)據(jù)的分布式數(shù)據(jù)庫(kù)”。該數(shù)據(jù)庫(kù)系統(tǒng)專(zhuān)注于高性能罪郊、高可擴(kuò)展性蠕蚜、和不錯(cuò)的容錯(cuò)能力。
FoundationDB是由戴夫·羅森塔爾(Dave Rosenthal)悔橄、戴夫·謝勒(Dave Scherer)靶累、和尼克拉維澤(Nick Lavezzo)于2009年開(kāi)發(fā)的,旨在建立一個(gè)符合ACID約束的NoSQL數(shù)據(jù)庫(kù)癣疟,ACID是一種即使在發(fā)生錯(cuò)誤時(shí)也保證數(shù)據(jù)完整性的數(shù)據(jù)庫(kù)機(jī)制挣柬。2015 年蘋(píng)果公司收購(gòu)了數(shù)據(jù)提供商 FoundationDB,目的是為了提升旗下 App Store睛挚、iTunes Connect邪蛔、 iTunes 服務(wù)在云端的服務(wù)器技術(shù)。FoundationDB 隨之從開(kāi)源變?yōu)殚]源扎狱。
FoundationDB官網(wǎng)的聲明指出侧到,經(jīng)過(guò)多年的開(kāi)發(fā)和生產(chǎn)環(huán)境使用FoundationDB 已經(jīng)非常成熟,其將成為下一代分布式數(shù)據(jù)庫(kù)的基石淤击。通過(guò)開(kāi)源FoundationDB匠抗,我們的目標(biāo)是建設(shè)一個(gè)開(kāi)放的社區(qū),所有重大開(kāi)發(fā)都將在開(kāi)源環(huán)境中進(jìn)行污抬。
FoundationDB是一個(gè)分布式數(shù)據(jù)庫(kù)汞贸,用于處理大量的、跨商用服務(wù)器集群的結(jié)構(gòu)化數(shù)據(jù)印机。它使用有序的鍵值(key-value)存儲(chǔ)方式矢腻,并能讓所有操作具有ACID事務(wù)屬性。特別適合讀/寫(xiě)頻繁的操作射赛,而且對(duì)于“寫(xiě)”密集的操作也具有極好的性能多柑。用戶(hù)可以使用綁定的API與數(shù)據(jù)庫(kù)進(jìn)行交互。
更多信息可以訪(fǎng)問(wèn)foundationdb.org楣责。
文檔
相關(guān)文檔可以在https://apple.github.io/foundationdb/中找到竣灌。文檔包括API的使用诫隅、設(shè)計(jì)理念的背景信息以及擴(kuò)展的應(yīng)用示例。文檔是根據(jù)本庫(kù)的源碼創(chuàng)建的帐偎。
論壇
歡迎加入FoundationDB論壇,參與對(duì)FoundationDB項(xiàng)目的討論和交流蛔屹。我們希望FoundationDB能夠成為一個(gè)偉大的項(xiàng)目削樊,因此建立了一套行為準(zhǔn)則來(lái)規(guī)范互動(dòng)模式。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖:FoundationDB論壇
貢獻(xiàn)您的力量
可以對(duì)FoundationDB代碼庫(kù)貢獻(xiàn)代碼兔毒,在論壇上分享使用經(jīng)驗(yàn)和見(jiàn)解漫贞,或者對(duì)使用FoundationDB的項(xiàng)目做出貢獻(xiàn)。詳情請(qǐng)參閱貢獻(xiàn)指南育叁。
入門(mén)
二進(jìn)制包下載
開(kāi)發(fā)人員可以很容易地通過(guò)下載和安裝二進(jìn)制包迅脐,輕松啟動(dòng)FoundationDB。
請(qǐng)查看? 下載頁(yè)面 (https://www.foundationdb.org/download/) 中軟件包列表豪嗽。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖:FoundationDB下載頁(yè)面
源碼編譯
如果開(kāi)發(fā)人員沒(méi)有找到相應(yīng)操作系統(tǒng)的二進(jìn)制包谴蔑,或者想深入了解代碼,可以從源碼編譯開(kāi)始龟梦。
macOS
1隐锭、在Mac上檢出(check out)你的分支庫(kù)
2、安裝Xcode命令行工具
3计贰、下載Boost 1.52版本(https://sourceforge.net/projects/boost/files/boost/1.52.0/)
4钦睡、設(shè)置BOOSTDIR環(huán)境變量,指明Boost安裝的位置
5躁倒、安裝Mono
6荞怒、安裝JDK 。FoundationDB 當(dāng)前要求 Java 8秧秉。
7褐桌、回到foundationdb 檢出分支庫(kù)的目錄
8、運(yùn)行make福贞。
Linux
1撩嚼、安裝Docker
2、使用build源目錄中的文件Dockerfile構(gòu)建Linux的docker image挖帘。
3完丽、檢出(check out)foundationdb分支庫(kù)
4、運(yùn)行docker鏡像拇舀,命令包含foundationdb分支庫(kù)的安裝加載(Docker Mounts)目錄逻族。
docker
run-it-v'/local/dir/path/foundationdb:/docker/dir/path/foundationdb'/bin/bash
5、回到包含foundationdb分支庫(kù)的安裝加載目錄骄崩。
cd /docker/dir/path/foundationdb
6聘鳞、運(yùn)行make薄辅。
這種方式將實(shí)現(xiàn)foundationdb服務(wù)器端(fdbserver)程序和Python的綁定。如果要綁定其他語(yǔ)言抠璃,則需要安裝要相應(yīng)語(yǔ)言的運(yùn)行時(shí)(runtime)站楚。每個(gè)綁定都有一個(gè).mk文件,為該綁定提供指定的目標(biāo)搏嗡。