您好,登錄后才能下訂單哦!
這篇文章主要介紹LSM樹在HBase中怎么應用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
在RDBMS中,數據隨機無序寫在磁盤塊中,如果沒有B+樹,讀性能會很低。B+樹對于數據讀操作能很好地提高性能,但對于數據寫,效率不高。對于大型分布式數據系統,B+樹還無法與LSM樹相抗衡。
圖1 B+ 樹
LSM樹可以看成n層合并樹。在HBase中,它把隨機寫轉換成對memstore和hfile的連續寫。圖2展示了LSM樹數據寫的過程。
圖2 LSM樹
數據寫(插入,更新):數據首先順序寫如hlog (WAL), 然后寫到MemStore, 在MemStore中,數據是一個2層B+樹(圖2中的C0樹)。MemStore滿了之后,數據會被刷到storefile (hFile),在storefile中,數據是3層B+樹(圖2中的C1樹),并針對順序磁盤操作進行優化。
數據讀:首先搜索MemStore,如果不在MemStore中,則到storefile中尋找。
數據刪除:不會去刪除磁盤上的數據,而是為數據添加一個刪除標記。在隨后的major compaction中,被刪除的數據和刪除標記才會真的被刪除。
LSM數據更新只在內存中操作,沒有磁盤訪問,因此比B+樹要快。對于數據讀來說,如果讀取的是最近訪問過的數據,LSM樹能減少磁盤訪問,提高性能。
以上是“LSM樹在HBase中怎么應用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。