
第八章
架構
對於進階使用者(或那些就是愛冒險的人)而言,完整地瞭解其所選擇系統背後是如何
的工作,這會非常有用。本章會解釋 HBase 的各個運作單元,以及它們相互之間是如何
運作。
搜尋 VS. 傳遞
然而,在研究架構本身之前,我們首先針對一般關聯式資料庫管理系統(RDBMS)及
非傳統儲存架構之間的根本不同點來做探討。特別的是,我們將簡要地介紹 B-trees 或
者更確切地說是
B+ trees
1
,它們通常被使用在關聯式儲存引擎,以及
日誌式結構合併
樹
2
,這在某些程度上形成了 Bigtable 的儲存架構基礎,如在第 16 頁“組件”中所談
到的。
請注意,關聯式資料庫管理系統並不是只採用 B-tree 結構,也不是所有的
NoSQL 解決方案都使用不同的架構。你會發現一個各式各樣的混搭型技術,
但都有一個共同的目標:它們會針對手頭上的問題,使用最佳策略解法。
B+ Trees
B+ tree 有一些特有的特色,它允許高效率的插入、尋查(lookup)和刪除由鍵值所識別
的記錄。就每一個 segment(也稱為
page
)的 key 數量而言,它們呈現一個動態、具有
上下界的多層級索引結構。使用 segment,達到了比二元樹更高的扇出(fanout),這大
大降低了查找某個特定的 key 所需的 IO 操作數。
1 參考維基百科上的“B+ trees”介紹
(
http://en.wikipedia.org/wiki/B%2B_tree
)
。
2 參考 O
’
Neil et al., 1996 的“LSM-Tree ...