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

Hudson commented on HBASE-16738:
--------------------------------

SUCCESS: Integrated in Jenkins build HBase-Trunk_matrix #1719 (See 
[https://builds.apache.org/job/HBase-Trunk_matrix/1719/])
HBASE-16738 L1 cache caching shared memory HFile block when blocks 
(anoopsamjohn: rev 250ad644e4445a948d1fdc09a3e292a9dd05ffa9)
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlock.java


> 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)

Reply via email to