hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lars hofhansl <la...@apache.org>
Subject Re: BlockCache for large scans.
Date Fri, 11 Apr 2014 20:53:36 GMT
Yep. For all of our M/R jobs we do indeed disable the caching of blocks.
In fact TableInputFormat sets cache blocks to false currently anyway.

-- Lars

 From: Jean-Marc Spaggiari <jean-marc@spaggiari.org>
To: user <user@hbase.apache.org>; lars hofhansl <larsh@apache.org> 
Sent: Friday, April 11, 2014 6:54 AM
Subject: Re: BlockCache for large scans.

Hi Lars,

So just to continue on that, when we are do MR jobs with HBase, this should be disable too
since we will read the entire table, right? Is this done by default or it's something the
client should setup manually? On my own code I setup this manually. I looked into TableMapReduceUtil.initTableMapperJob
and there is nothing there. Should we not just set CacheBlocks to false in initTableMapperJob


2014-04-10 14:50 GMT-04:00 lars hofhansl <larsh@apache.org>:

Generally (and this is database lore not just HBase) if you use an LRU type cache, your working
set does not fit into the cache, and you repeatedly scan this working set you have created
the worst case scenario. The database does all the work caching the blocks, and subsequent
scans will need block that were just evicted towards end of the previous scan.
>For large scans where it is likely that the entire scan does not fit into the block cache,
you should absolutely disable caching the blocks traversed for this scan (i.e. scan.setCacheBlocks(false)).
Index blocks are not affected, they are cached regardless.
>-- Lars
> From: gortiz <gortiz@pragsis.com>
>To: user@hbase.apache.org
>Sent: Wednesday, April 9, 2014 11:37 PM
>Subject: Re: BlockCache for large scans.
>But, I think there's a direct relation between improving performance in
>large scan and memory for memstore. Until I understand, memstore just
>work as cache to write operations.
>On 09/04/14 23:44, Ted Yu wrote:
>> Didn't quite get what you mean, Asaf.
>> If you're talking about HBASE-5349, please read release note of HBASE-5349.
>> By default, memstore min/max range is initialized to memstore percent:
>>      globalMemStorePercentMinRange = conf.getFloat(
>>          globalMemStorePercent);
>>      globalMemStorePercentMaxRange = conf.getFloat(
>>          globalMemStorePercent);
>> Cheers
>> On Wed, Apr 9, 2014 at 3:17 PM, Asaf Mesika <asaf.mesika@gmail.com> wrote:
>>> The Jira says it's enabled by auto. Is there an official explaining this
>>> feature?
>>> On Wednesday, April 9, 2014, Ted Yu <yuzhihong@gmail.com> wrote:
>>>> Please take a look at http://www.n10k.com/blog/blockcache-101/
>>>> For D, hbase.regionserver.global.memstore.size is specified in terms of
>>>> percentage of heap. Unless you enable HBASE-5349 'Automagically tweak
>>>> global memstore and block cache sizes based on workload'
>>>> On Wed, Apr 9, 2014 at 12:24 AM, gortiz <gortiz@pragsis.com<javascript:;>>
>>>> wrote:
>>>>> I've been reading the book definitive guide and hbase in action a
>>> little.
>>>>> I found this question from Cloudera that I'm not sure after looking
>>> some
>>>>> benchmarks and documentations from HBase. Could someone explain me a
>>>> little
>>>>> about? . I think that when you do a large scan you should disable the
>>>>> blockcache becuase the blocks are going to swat a lot, so you didn't
>>> get
>>>>> anything from cache, I guess you should be penalized since you're
>>>> spending
>>>>> memory, calling GC and CPU with this task.
>>>>> *You want to do a full table scan on your data. You decide to disable
>>>>> block caching to see if this**
>>>>> **improves scan performance. Will disabling block caching improve scan
>>>>> performance?*
>>>>> A.
>>>>> No. Disabling block caching does not improve scan performance.
>>>>> B.
>>>>> Yes. When you disable block caching, you free up that memory for other
>>>>> operations. With a full
>>>>> table scan, you cannot take advantage of block caching anyway because
>>>> your
>>>>> entire table won't fit
>>>>> into cache.
>>>>> C.
>>>>> No. If you disable block caching, HBase must read each block index from
>>>>> disk for each scan,
>>>>> thereby decreasing scan performance.
>>>>> D.
>>>>> Yes. When you disable block caching, you free up memory for MemStore,
>>>>> which improves,
>>>>> scan performance.
>*Guillermo Ortiz*
>/Big Data Developer/
>Telf.: +34 917 680 490
>Fax: +34 913 833 301
>C/ Manuel Tovar, 49-53 - 28034 Madrid - Spain
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message