bq. it is always cached on read even when per-family/per-query cacheBlocks
is turned off.

True.


On Wed, Apr 16, 2014 at 4:41 PM, Tianying Chang <[email protected]> wrote:

> Hi,
>
> We have a use case where some data are mostly random read, so it polluted
> cache and caused big GC. It is better to turn off the block cache for those
> data. So we are going to call setCacheBlocks(false) for those get(). We
> know that the index will be still cached based on below code path, so we
> are safe there.  But it is not clear if BloomFilter belong to the level <
> searchTreeLevel, and also get cached also.
>
>          // Call HFile's caching block reader API. We always cache index
>          // blocks, otherwise we might get terrible performance.
>           boolean shouldCache = cacheBlocks || (lookupLevel <
> searchTreeLevel);
>           BlockType expectedBlockType;
>           if (lookupLevel < searchTreeLevel - 1) {
>             expectedBlockType = BlockType.INTERMEDIATE_INDEX;
>           } else if (lookupLevel == searchTreeLevel - 1) {
>             expectedBlockType = BlockType.LEAF_INDEX;
>           } else {
>             // this also accounts for ENCODED_DATA
>             expectedBlockType = BlockType.DATA;
>           }
>
> Or I think because BloomFilter is part of Meta data, so it is always cached
> on read even when per-family/per-query cacheBlocks is turned off. Am I
> right?
>
> Thanks
> Tian-Ying
>

Reply via email to