
架構
|
331
為了比較 B+ tree 與 LSM-tree,你需要了解它們相關的優缺點。在沒有太多的更新操作
前,B+ tree 可以工作的很好,因為它強制你執行高成本的最佳化動作,來保持有限次數
的優勢。在你將越來越多及速度越快的資料加到隨機位置後,page 很快就會再次變得零
碎。最後,資料傳入的速度,可能會超過最佳化過程中重寫既有檔案的速度。更新和刪
除完全是看磁碟搜尋速度,而不是磁碟傳輸速度。
LSM-tree 運作取決於磁碟傳輸速度,而且有更佳的延伸性,可以來處理大量的資料。因
為 LSM-tree 會使用日誌檔案配合記憶體儲存的方式,將隨機寫入動作轉換成循序寫入
動作,它也能保證一個比較一致的插入速度。讀取與寫入是獨立的,因此這兩種操作之
間不會產生競爭。
儲存的資料通常經過最佳化配置。所以,對於存取一個 key 所需的磁碟存取操作數量,
可以有一個可預測且一致性的範圍,同時讀取該 key 後面的那些記錄,也不會再增加額
外的搜尋動作。這邊要強調,在通常情況下,一個基於 LSM-tree 的系統成本是透明的:
假如你知道有五個儲存檔案,存取將花掉最多五次磁碟搜尋時間,即使已經做了索引,
還是無法決定一個 RDBMS 查詢會花費多少磁碟搜尋次數。
最後,HBase 就像 Bigtable,是一個以 LSM-tree 為基礎的系統。下一章將介紹儲存架
構,請您適當的參考本書之前的章節內容。
儲存
HBase 有一個不能不知道的部分,就是資料實際上是如何被儲存的。雖然大多數用戶可
能永遠不會煩惱這個。當你想要學習你所設定的多樣化進階組態設定選項的意義時,這 ...