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開源數據庫項目。