日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hbase 中的LSM树存储引擎

發布時間:2024/2/28 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hbase 中的LSM树存储引擎 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

LSM的原理:將對數據的修改增量保存在內存中,達到指定大小限制之后批量把數據flush到磁盤中,磁盤中樹定期可以做merge操作,合并成一棵大樹,以優化讀性能。不過讀取的時候稍微麻煩一些,讀取時看這些數據在內存中,如果未能命中內存,則需要訪問較多的磁盤文件。極端的說,基于LSM樹實現的hbase寫性能比mysql高了一個數量級,讀性能卻低了一個數量級。

LSM樹原理把一顆大叔拆分成N顆小樹,它首先在內存中,它首先寫入內存中,隨著小樹越來越大,內存中的小樹會flush到磁盤中,磁盤中的樹定期可以做merge操作,合并成為一個大叔,用來優化讀性能。

簡單來說:

在hbase的架構中:

以上就是hbase存儲設計的重要思想,這里說明一下:

  • 因為數據是先寫到內存中,所以為了防止內存數據丟失,會先把數據寫入hlog中,也符合了數據庫中標準,先寫日志,再寫數據
  • memstore上的樹達到一定大小之后,需要flush到磁盤中,然后再定期做合并,提高讀取的性能;

?

關于LSM Tree,對于最簡單的二層lsm而言。

lsm tree,理論上,可以是內存中樹的一部分和磁盤中一層數做merge,對于磁盤中的樹直接做update操作有可能會破壞物理block的連續性,在實際場景中,一般lsm有多層,當磁盤中的小樹合并成為一個大樹的時候,可以重新排好順序,使block連續,優化讀性能。

hbase在視線中,是把整個內存在一定閾值后,flush到disk中,形成一個hfile文件。這個file的存儲也是一個小的b+樹,因為hbase是存儲在hdfs上,hdfs不支持更新操作,所以hbase的數據也是定期flush到磁盤中,而不是和文件中的hfile做合并操作。

?

對比三種引擎的實現:  

  • hash存儲引擎:哈希表持久化的實現,可以快速支持增刪改查等隨機操作,且時間復雜度為o(1),但是不支持順序讀取掃描,對應的存儲系統為k-v存儲系統的實現。
  • b樹存儲引擎是b樹的持久化實現,不僅支持單條記錄的增刪改查操作,還支持順序掃描,對應的存儲系統就是mysql。
  • lsm樹存儲引擎和b樹存儲引擎,一樣支持,增刪改查,也支持順序掃描操作。LSM犧牲了讀性能,提高寫性能。

摘自:Mr.Yan

總結

以上是生活随笔為你收集整理的hbase 中的LSM树存储引擎的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。