hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ramkrishna.s.vasudevan (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-16738) L1 cache caching shared memory HFile block when blocks promoted from L2 to L1
Date Mon, 03 Oct 2016 09:59:20 GMT

    [ https://issues.apache.org/jira/browse/HBASE-16738?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15542032#comment-15542032
] 

ramkrishna.s.vasudevan commented on HBASE-16738:
------------------------------------------------

+1 for patch.
bq., do we need cobinedMode = false for L1 & L2?
+1 for this. This combineMode with false may not be needed.

> L1 cache caching shared memory HFile block when blocks promoted from L2 to L1
> -----------------------------------------------------------------------------
>
>                 Key: HBASE-16738
>                 URL: https://issues.apache.org/jira/browse/HBASE-16738
>             Project: HBase
>          Issue Type: Sub-task
>          Components: regionserver, Scanners
>    Affects Versions: 2.0.0
>            Reporter: Anoop Sam John
>            Assignee: Anoop Sam John
>             Fix For: 2.0.0
>
>         Attachments: HBASE-16738.patch
>
>
> This is an issue when L1 and L2 cache used with combinedMode = false.
> See in getBlock
> {code}
> if (victimHandler != null && !repeat) {
>         Cacheable result = victimHandler.getBlock(cacheKey, caching, repeat, updateCacheMetrics);
>         // Promote this to L1.
>         if (result != null && caching) {
>           cacheBlock(cacheKey, result, /* inMemory = */ false, /* cacheData = */ true);
>         }
>         return result;
>       }
> {code}
> When block is not there in L1 and have it in L2, we will return the block read from L2
and promote that block to L1 by adding it in LRUCache.  But if the Block buffer is having
shared memory (Off heap bucket cache for eg:) , we can not directly cache this block. The
buffer memory area under this block can get cleaned up at any time. So we may get block data
corruption.
> In such a case, we need to do a deep copy of the block (Including its buffer) and then
add that to L1 cache.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message