[
https://issues.apache.org/jira/browse/HBASE-11520?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14065038#comment-14065038
]
Nick Dimiduk commented on HBASE-11520:
--------------------------------------
bq. On the test, offheap plus BUCKET_CACHE_COMBINED_KEY == false is a legit set
up. This is how you ask for an L1+L2 that is not 'combined'.
Reading through the logic again.
{{lruCache.setVictimCache}} is called only when {{bucketCacheIOEngineName !=
null && bucketCacheSize > 0}}. {{combinedWithLru}} is used to size the lrucache
based on the value of {{bucketCacheSize}}, calculated from
{{hbase.bucketcache.size}}. So setting
{{hbase.bucketcache.combinedcache.enabled=false}},
{{hbase.bucketcache.ioengine}} not null, and {{hbase.bucketcache.size}} not 0
results in {{GLOBAL_BLOCK_CACHE_INSTANCE=LruBlockCache}} with a {{victimCache}}
set but no way to access the blocks from the bucketcache.
Another observation: the *only* way to have a {{BucketCache}} instance
accessible via {{GLOBAL_BLOCK_CACHE_INSTANCE}} is via a {{CombinedCache}}.
Setting {{bucketCacheIOEngineName != null && bucketCacheSize > 0}} but
{{hbase.bucketcache.combinedcache.enabled=false}} results in
{{GLOBAL_BLOCK_CACHE_INSTANCE=LruBlockCache}} and a surprising amount of wasted
memory.
I think the only valid use of the bucketcache is when
combinedcache.enabled=true.
Am I missing something?
> Simplify offheap cache config by removing the confusing
> "hbase.bucketcache.percentage.in.combinedcache"
> -------------------------------------------------------------------------------------------------------
>
> Key: HBASE-11520
> URL: https://issues.apache.org/jira/browse/HBASE-11520
> Project: HBase
> Issue Type: Sub-task
> Components: io
> Affects Versions: 0.99.0
> Reporter: stack
> Assignee: stack
> Fix For: 0.99.0, 2.0.0
>
> Attachments: 11520.txt, 11520v2.txt, 11520v3.txt, 11520v3.txt
>
>
> Remove "hbase.bucketcache.percentage.in.combinedcache". It is unnecessary
> complication of block cache config. Let L1 config setup be as it is whether
> a L2 present or not, just set hfile.block.cache.size (not
> hbase.bucketcache.size * (1.0 -
> hbase.bucketcache.percentage.in.combinedcache)). For L2, let
> hbase.bucketcache.size be the actual size of the bucket cache, not
> hbase.bucketcache.size * hbase.bucketcache.percentage.in.combinedcache.
> Attached patch removes the config. and updates docs. Adds tests to confirm
> configs are as expected whether a CombinedBlockCache deploy or a strict L1+L2
> deploy.
--
This message was sent by Atlassian JIRA
(v6.2#6252)