hbase中的快取的計算與使用

2021-09-08 11:31:35 字數 655 閱讀 5959

hbase中的快取分了兩層:memstore和blockcache。

其中memstore供寫使用,寫請求會先寫入memstore,regionserver會給每個region提供乙個memstore,當 memstore滿64mb以後,會啟動flush重新整理到磁碟。當memstore的總大小超過限制時(heapsize * hbase.regionserver.global.memstore.upperlimit * 0.9),會強行啟動flush程序,從最大的memstore開始flush直到低於限制。

blockcache主要提供給讀使用。讀請求先到memstore中查資料,查不到就到blockcache中查,再查不到就會到磁碟上讀,並把讀的 結果放入blockcache。由於blockcache是乙個lru,因此blockcache達到上限(heapsize * hfile.block.cache.size * 0.85)後,會啟動淘汰機制,淘汰掉最老的一批資料。

乙個regionserver上有乙個blockcache和n個memstore,它們的大小之和不能大於等於heapsize * 0.8,否則hbase不能啟動。預設blockcache為0.2,而memstore為0.4。對於注重讀響應時間的系統,應該將 blockcache設大些,比如設定blockcache=0.4,memstore=0.39。這會加大快取命中率。

hbase中快取的優先順序

今天同事問到hbase中in memory屬性的作用,以前沒有注意過,今天仔細看了下 hbase內部的blockcache分三個佇列 single multi以及memory,分別占用25 50 25 的大小。這涉及到family屬性中的in memory選項,預設是false。設為false的話,...

Hbase中Filter的使用

組裝查詢條件成hbase 過濾器 public static filter getorderqueryfilter querycondition qc if qc null qc.getpay time end null qc.getpay time end equals if qc null qc...

Django中的快取的配置與使用

一 使用裝飾器 在檔案開頭匯入下面 然後在函式上方新增快取的裝飾器 from django.views.decorators.cache import cache page cache page 30 二 原生快取 django中提供了6種快取方式 常用的快取配置 memcache快取 首先要建立快...