Twitter曼哈頓資料庫的橫空出世表明當今的資料庫技術已經無法滿足大型互聯網公司的獨特需求,新一輪資料庫技術革命已經啟動。
Twitter是所有大型互聯網公司中產品即時性和技術進化速度最快的一個,本周Twitter在博客中公佈了即時資料服務的核心引擎——曼哈頓(Manhattan)資料庫的技術細節。 曼哈頓是一個分散式、即時資料庫,服務物件是Twitter公司內部的多個團隊和應用。
曼哈頓資料庫的資料處理能力和速度讓當今流行的開源資料庫相形見絀,這些資料庫已經無法滿足Twitter規模的生產環境,正如Twitter軟體工程師Peter Schuller所言:
我們為了讓生產系統滿足各種產品的性能預期而四處救火,浪費了太多時間。 為一個新應用配置存儲資源需要涉及太多的人工和流程。 根據我們的經驗,為Twitter這樣的大規模web業務開發和運營生產存儲環境,採用現成的資料庫技術已經行不通了。
Schuller在博客中詳細介紹了Twitter如何開發出曼哈頓這樣的高可靠、高可用、易用的新一代資料庫。 同時也公佈了一些為曼哈頓資料庫設計的一些資料格式的細節。 目前,使用者通過key-value存儲的方式使用曼哈頓資料庫,未來Twitter還計畫增加包括圖形介面在內的使用者介面。 曼哈頓資料庫有三個儲存引擎,分別面向唯讀Hadoop資料、大量讀取資料和大量寫入資料。 此外曼哈頓還內置了很多服務,包括導入Hadoop資料,確保資料一致性和計算時間序列資料等。
對於開發者和工程師來說最重要的一點是,曼哈頓作為一種存儲服務可以像其他任何一種雲存儲服務一樣使用。 工程師數秒鐘就可以為應用配置好存儲資源,無需等待安裝硬體或對系統架構進行重新配置。 Twitter將重點放在確保曼哈頓的多租戶使用的整體性能不會因某個租戶佔用過多資源而受到影響。
Twitter計畫在擇日發佈的曼哈頓資料庫技術白皮書中公佈具體技術開發細節。 作為開源軟體的重量級擁躉,Twitter很可能會在將來某個時間將曼哈頓資料庫技術開源。 實際上,Twitter曾于2012年將其MySQL代碼開源,最近又與Facebook攜手開發WebScaleSQL開源資料庫專案。
Twitter曼哈頓資料庫的橫空出世表明當今的資料庫技術已經無法滿足大型互聯網公司的獨特需求。 Twitter、Google、Facebook和LinkedIn已經拋棄了最初的NoSQL技術(這些NoSQL技術正在進入大型企業),紛紛開發下一代資料庫技術,正如他們當年開發Cassandra、 Voldemort和BigTable那樣。 也許曼哈頓將成為未來的Cassandra,而LinkedIn的Espresso成為新的MongoDB(編者按:MongoDB因獲得NSA投資而在發展中市場受挫),成為下一代創業公司開發者的寵兒。