BlockCacheのHBaseの

HBaseのは、実装に2つのキャッシュ構造を提供する:MemStoreとBlockCacheは、読み取りキャッシュの書き込みキャッシュ、およびblockcacheのために主にmemstore。MemStoreが書き込みキャッシュを呼び出した後、HBaseのデータ書き込み動作は、第1 MemStore書き込まれる、シーケンシャル書き込み[ハント]、データmemstore水位は、システムによって値のセットに達すると、それはデータがブラシでディスクに書き込まれたフラッシュmemstoreをトリガします。この設計は大幅にHBaseのの書き込み性能を向上させることができます。だけではなく、読み取りパフォーマンスのためにも重要なMemStore、そうでない場合はMemStoreは、ちょうど読み書き込まれたデータをファイルからIOを見つける必要があるだろう、ということ、これは、価格が高価である、明らかです!

BlockCacheは、読み取りキャッシュと呼ばれます。お客様が最初にmemstore読み取り要求blockcahceに同時にそれはディスクから読み込まれます見つけると、読み出したデータそれはチェックでblockcacheする場合見つけ出す、および、データを検索します。、LRU(最も最近使用 - 最近使用した最小)とLFU(少なくとも最近使用頻度の低い - よく使う最小)、のHBaseの - 私たちは、すなわち、FIFO(最初の入力第一出力先入れ先出し)、キャッシュは、3つの異なる更新戦略を持っていることを知っていますBlockCacheのサイズが上限に達しLRUポリシーを使用してブロック、それは排除機構バッファトリガする、データの最も古いバッチがなくなります。

そして、NはBlockCache Memstore 1つのリージョンサーバーを持っています。

HBaseのBlockCache位置は、図に示された次の

達成BlockCacheはオンヒープのConcurrentHashMapをベースにしています。キーは、オブジェクトBlockCacheKeyマップタイプであり、メンバ変数、オブジェクトのマップ値LruCachedBlockタイプのような、hfileNameオフセットを含むキャッシュLRUを排除に基づく比較のために、オブジェクトのメンバ変数のアクセス時間を定義するエンティティを表します。BlockCacheのサイズが固定され、パラメータがhfile.block.cache.size、デフォルトリージョンサーバーヒープメモリの40%を決定しました。

BlockCacheを導入する前に、簡単にはここに突くを詳述し、ブロックのHBaseでの概念を確認します。HBaseのブロックは、パラメータがtable文のBlockSizeの建設によって指定することができ、デフォルトは64Kで、最小のデータ記憶装置です。データブロック、インデックスブロック、ブルームブロックとメタブロック:ブロック内のHBaseは4つのタイプに分けます。、インデックスデータを格納することによりブルームブロックインデックスブロックと探索パスランダムリードを最適化するために使用され、データをバックアップし、前記インデックスブロックルック;前記データブロックは通常、各データブロックです。KeyValueは、複数のデータを格納することができ、実際のデータを格納するために使用されますメタデータのメタブロックHFILE全体の主記憶装置と、ブルームブロックアルゴリズムは、特定の部分を介して濾過することができるです。KeyValueデータファイルは、存在しない不要なIOオペレーションを減らすために検討されなければなりません。

 

BlockCache地域Serverレベルで、地域Serverは、リージョンサーバーが起動するだけで一つのブロックのキャッシュ、完全なブロックキャッシュの初期化されています。これまでのところ、HBaseのは、3種類のブロックキャッシュプログラムを達成した、LRUBlockCacheは、元の実装計画だったにもデフォルトの実装であり、HBaseの0.92バージョンが実装番目のオプションSlabCacheは、ご覧のHBase-4027を、HBaseの0.96は、別の公式を提供した後、一つのオプションBucketCache、参照のHBase-7404を

 

すべてのデータがJVMを管理するために、JVMヒープにLRUBlockCacheされたメモリ管理モード、という3つの方式の間の差。HBaseの自身の管理に、ヒープ外部に格納されたデータの一部に後者の二つの用途の異なるメカニズム。この進化は、外部ヒープメモリデータ管理の使用はこれを防ぐことができますが、多くの場合、長い一時停止につながるLRUBlockCacheプログラムJVMガベージコレクションの手続きによるものです。

 


LruBlockCache BucketCacheについてポッドキャストを参照
LruBlockCacheデフォルト、(オン・ヒープ)ヒープメモリに存在
BucketCacheは、ヒープメモリ(OFF-ヒープ)外に存在
https://www.cnblogs.com/zackstang/p/10061379.html
HTTPS:/ /www.cnblogs.com/panfeng412/archive/2012/09/24/hbase-block-cache-mechanism.html
 

发布了131 篇原创文章 · 获赞 79 · 访问量 31万+

おすすめ

転載: blog.csdn.net/qq_31780525/article/details/100581239