2010年6月14日 星期一

分散式雜湊表和key-value資料存儲:memcached, MemcacheDB, Project Voldemort, Scalaris, and Tokyo Cabinet

分散式雜湊表和key-value存儲是構建可伸縮的,負載均衡的應用程式的工具,不強制執行資料完整性、一致性、和原子持久性檢查,它們有限地支援應 用做即席查詢和複雜分析處理。這樣的產品包括memcached, MemcacheDB, Project Voldemort, Scalaris, and Tokyo Cabinet。

  Memcached使用得非常普遍,廣泛用於資料庫驅動的 網站緩存解決方案,他是一個巨大的關聯陣列,使用GET或PUT功能訪問,用一個鍵值標識資料的唯一性。對於緩存查詢代價高的SQL語句返回的資訊特別有 用,如數量和總計。MemcacheDB是一個分散式key-value資料存儲,符合memcached協定,但使用了Berkeley資料庫進行資料 持久化存儲。

  Scalaris是一個分散式key-value存儲,它是用ErLang實現的,它為事務實現了無阻塞提交協定,使用 Web介面,你可以讀寫key-value值,每個操作都是一個原子事務。使用Java可以執行更複雜的事務。Scalaris具有很強的一致性,支持對 稱複製,但沒有持久性存儲。

  開源的Tokyo Cabinet資料庫key-value存儲目前在網上很多社區討論得火熱,它的速度快得驚人,使用雜湊表引擎存儲1百萬條記錄只需要0.7秒,使用B叉 樹引擎時也只需要1.6秒。資料模型是每個鍵都有一個值,它支持LZW壓縮,當鍵排好序後,可以進行首碼和範圍匹配,在處理事務時,它可以在寫入日誌和影 式分頁之前寫入。

  Tokyo Tyrant是 Tokyo Cabinet的一個資料庫伺服器版本,它主要用於高容量應用中緩存SQL資料庫。

  有些產品支援基於鍵範圍的查詢,但即席查詢操作和總計操作(求和,平均數和分組)需要程式設計實現,因為沒有內置這些功能。

沒有留言: