蘋果為什麼收購FoundationDB?
最近一個爆炸新聞是apple收購了名不經傳的FoundationDB,之前蘋果是使用Cassandra作為來儲存各種資源包括使用者上傳的資料影音媒體圖片等等。這一舉動引發了多方揣測,一些人認為蘋果使用非開源的資料庫來儲存使用者的資料,是不是別有用心?
下面從技術層面分析一下FoundationDB的獨特特點:
FoundationDB是一個高擴充套件性 失敗容錯和高效能的支援完整ACID事務的NoSQL資料庫,其特點是將高效能、失敗容錯和ACID事務融合在一起,因為根據CAP理論,高一致性代表的ACID與代表高效能的可用性以及分割槽容錯三者之中只能選擇兩者,而FoundationDB竟然表面上將三者都做到了,難道是打敗了CAP定理嗎?
在現有的NoSQL世界中,MongoDB並不是一個ACID相容的資料庫,包括Cassandra、Riak、 Redis等等,.其實NOSQL資料庫本身是在否定ACID基礎上發展起來,因此不應該會相容ACID,但是,隨著人們要求提高,對NOSQL的事務要求也就越來越高,Google的Megastore是ACID相容的,Spanner做得更好。
FoundationDB類似Google基於Spanner建立的F1資料庫,Google使用該資料庫作為其核心業務AdWord廣告的基礎儲存。F1是一個 提供高伸縮的資料儲存、同步複製和強一致性以及順序屬性的資料庫,F1繼承了Spanner的特性並增加更多新功能,Spanner主要負責處理低層次的儲存功能,比如持久、快取、複製、失敗容錯、資料分片和地理位置尋找以及事務。
在The Return of ACID in the Design of NoSQL Databases一文中闡述了當前NOSQL資料庫對ACID需求的迴歸,按照CAP定理,一般透過犧牲強一致性C,使用弱一致性比如最終一致性來換得可用性效能A與分割槽容錯性P的提升,Google在最終一致性系統方面累計了很多經驗,他們發現開發人員會耗費特別多的精力時間來構建非常複雜的易出錯的機制來應付最終一致性與資料過期失效的矛盾(為什麼計算科學中最難的兩件事是命名和快取失效),他們認為不是開發人員應該接受的負擔,應該在資料庫級別解決一致性問題,完整的事務一致性是F1最重要的特性之一。
基於Bigtable的Google的Megastore只能在一個複製節點內保證ACID,跨節點就不行了,而Spanner能夠提供跨節點的ACID,FoundationDB和F1都支援強一致性和多物件事務的ACID,時間是分散式系統保證一致性的唯一法門, Spanner最重要的設計是依賴於一個唯一的timekeeping基準時間系統,作為全域性時鐘,結合GPS和原子鐘時間戳可以強烈限制了時間上的不確定性,提高了時間精確度,Spanner使用這些時間戳確保事務滿足外部一致性,也就是線性化linearizability和比序列化serializability更嚴格。
總之,蘋果透過收購FoundationDB,擁有了與Google一樣的強大雲端儲存,從而能夠在智慧終端到雲端之間端到端的競爭中增加獲勝的砝碼。
下面從技術層面分析一下FoundationDB的獨特特點:
FoundationDB是一個高擴充套件性 失敗容錯和高效能的支援完整ACID事務的NoSQL資料庫,其特點是將高效能、失敗容錯和ACID事務融合在一起,因為根據CAP理論,高一致性代表的ACID與代表高效能的可用性以及分割槽容錯三者之中只能選擇兩者,而FoundationDB竟然表面上將三者都做到了,難道是打敗了CAP定理嗎?
在現有的NoSQL世界中,MongoDB並不是一個ACID相容的資料庫,包括Cassandra、Riak、 Redis等等,.其實NOSQL資料庫本身是在否定ACID基礎上發展起來,因此不應該會相容ACID,但是,隨著人們要求提高,對NOSQL的事務要求也就越來越高,Google的Megastore是ACID相容的,Spanner做得更好。
FoundationDB類似Google基於Spanner建立的F1資料庫,Google使用該資料庫作為其核心業務AdWord廣告的基礎儲存。F1是一個 提供高伸縮的資料儲存、同步複製和強一致性以及順序屬性的資料庫,F1繼承了Spanner的特性並增加更多新功能,Spanner主要負責處理低層次的儲存功能,比如持久、快取、複製、失敗容錯、資料分片和地理位置尋找以及事務。
在The Return of ACID in the Design of NoSQL Databases一文中闡述了當前NOSQL資料庫對ACID需求的迴歸,按照CAP定理,一般透過犧牲強一致性C,使用弱一致性比如最終一致性來換得可用性效能A與分割槽容錯性P的提升,Google在最終一致性系統方面累計了很多經驗,他們發現開發人員會耗費特別多的精力時間來構建非常複雜的易出錯的機制來應付最終一致性與資料過期失效的矛盾(為什麼計算科學中最難的兩件事是命名和快取失效),他們認為不是開發人員應該接受的負擔,應該在資料庫級別解決一致性問題,完整的事務一致性是F1最重要的特性之一。
基於Bigtable的Google的Megastore只能在一個複製節點內保證ACID,跨節點就不行了,而Spanner能夠提供跨節點的ACID,FoundationDB和F1都支援強一致性和多物件事務的ACID,時間是分散式系統保證一致性的唯一法門, Spanner最重要的設計是依賴於一個唯一的timekeeping基準時間系統,作為全域性時鐘,結合GPS和原子鐘時間戳可以強烈限制了時間上的不確定性,提高了時間精確度,Spanner使用這些時間戳確保事務滿足外部一致性,也就是線性化linearizability和比序列化serializability更嚴格。
總之,蘋果透過收購FoundationDB,擁有了與Google一樣的強大雲端儲存,從而能夠在智慧終端到雲端之間端到端的競爭中增加獲勝的砝碼。
[該貼被banq於2015-03-26 17:55修改過]
相關文章
- 為什麼ORACLE收購SUN要歐盟批准Oracle
- 蘋果FoundationDB事務宣言蘋果
- 為什麼Facebook收購WhatsApp對使用者不利APP
- 蘋果收購大量初創企業 只為獲得人才蘋果
- iwatch2換屏高能 蘋果收購這個螢幕到底是什麼?蘋果
- 收購蘋果企業開發者賬號蘋果
- 蘋果16個月收購23家公司蘋果
- 蘋果為什麼長盛不衰?蘋果
- 為什麼 elasticsearch 的 JDBC 要收費ElasticsearchJDBC
- 為什麼起床後不能收郵件?
- 為什麼思科願意高價收購一家雲網路創業公司創業
- 調查:Sun收購MySql意味著什麼?您怎麼看?MySql
- 業界分析:微軟收購貝塞斯達背後藏有什麼乾坤?微軟
- ios蘋果企業開發者賬號的收購iOS蘋果
- 蘋果收購社交網路分析公司Topsy蘋果
- 蘋果證書為什麼會掉?蘋果
- 蘋果簽名為什麼會掉?蘋果
- 覆盤AI領域收購十年:635起收購案,蘋果位居榜首AI蘋果
- Google為何計劃收購InMobi?Go
- 蘋果為殺入AI領域低調收購,iOS 18要有大動作蘋果AIiOS
- 收購未完成 蘋果已對Beats 進行裁員蘋果
- 蘋果為什麼只在中國生產iPhone?蘋果iPhone
- 阿里為什麼不收購百度?真相在此阿里
- 《星際戰甲》開發商:收購樂遊科技的騰訊,能夠為我們帶來什麼?
- 一起蘋果小型收購案裡的大趨勢蘋果
- 蘋果收購移動應用分析工具開發商Burstly蘋果
- 蘋果有意收購時代華納:推流媒體電視蘋果
- 為什麼蘋果照片電腦打不開 heic是什麼檔案蘋果
- 為什麼要選擇蘋果企業簽名?蘋果
- 為什麼蘋果和微軟將AI推向邊緣?蘋果微軟AI
- 蘋果iPhone為什麼能夠做到“低配高能”?蘋果iPhone
- 蘋果的設計為什麼難以複製蘋果
- Sterne Agee:為什麼中國移動要和蘋果合作蘋果
- SOLIDWORKS購買以後為什麼不能使用Solid
- 企業為什麼要使用集中採購系統?
- 為什麼為什麼為什麼為什麼為什麼你要做一名程式設計師?程式設計師
- [10.23]戴爾收購蘋果?黃金筆記本曝光(轉)蘋果筆記
- Oracle收購SUNOracle