Voldemort—NOSQL資料庫

Voldemort—NOSQL資料庫

Voldemort,是非關係資料庫中的一類鍵值(Key-Value)存儲資料庫 ,它 有一個經典three-operation鍵/值接口,但在大型分散式集群架構上進行複雜的後端處理。它使用一致的哈希表,允許特定的鍵值的進行存儲位置的快速查找。它有版本控制,會處理值間的不一致性 。

基本含義

Voldemort是一種區別於關係型資料庫,利用非關係存儲的鍵值( Key-Value)資料庫,對於IT系統來說易於部署,模型簡單;但DBA只對部分值進行查詢和更新時,效率較低 。

具體結構

分類 :非關係資料庫中的四類——鍵值(Key-Value)存儲資料庫、列存儲資料庫、文檔型資料庫、圖形(Graph)資料庫,Voldemort屬於鍵值存儲,數據模型較簡單與列存儲,鍵值存儲相類似於文檔型存儲。

數據模型 :Key 指向 Value 的鍵值對,使用Hash table來實現。

典型套用場景 :適用於內容快取,主要用於處理大量數據的高訪問負載以及一些日誌系統等

優缺點 :查找速度快,但數據無結構化,通常只被當作字元串或者二進制數據。

同類型資料庫 Tokyo Cabinet/Tyrant, Redis,Oracle Berkeley DB.

具體分析

Voldemort作為一個開源分散式鍵-值(Key-value)存儲系統,它的具體功能有 :

支持自動複製數據到多個伺服器上。

支持數據自動分割所以每個伺服器只包含總數據的一個子集。

提供伺服器故障透明處理功能。

支持可撥插的序化支持,以實現複雜的鍵-值存儲,它能夠很好的集成常用的序化框架如:Protocol Buffers、Thrift、Avro和Java Serialization。

數據項都被標識版本能夠在發生故障時儘量保持數據的完整性而不會影響系統的可用性。

每個節點相互獨立,互不影響。

支持可插拔的數據放置策略。

1.

支持自動複製數據到多個伺服器上。

2.

支持數據自動分割所以每個伺服器只包含總數據的一個子集。

3.

提供伺服器故障透明處理功能。

4.

支持可撥插的序化支持,以實現複雜的鍵-值存儲,它能夠很好的集成常用的序化框架如:Protocol Buffers、Thrift、Avro和Java Serialization。

5.

數據項都被標識版本能夠在發生故障時儘量保持數據的完整性而不會影響系統的可用性。

6.

每個節點相互獨立,互不影響。

7.

支持可插拔的數據放置策略。

案例

LinkedIn建立了一個類似Amazon’s Dynamo database的開源軟體,Voldemort 有一個經典three-operation鍵/值接口,但在大型分散式集群架構上進行複雜的後端處理。它使用一致的hash table,允許特定的鍵值的進行存儲位置的快速查找。它有版本控制,會處理值的不一致性。如果他們不同的客戶幾乎在同一時間寫入的話,那么對於一個給定鍵的讀操作實際上可能返回多個值。這種應用程式負擔,根據其數據的意義知識寫入多個值時,將採取一些合理的恢復行動。亞馬遜使用的示例是一個購物車,在項目集合聯合在一起時,失去任何故意的刪除但保留任何追加,從收入的角度來看至少具有重要意義 。

相關詞條

相關搜尋

熱門詞條

聯絡我們