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

Anoop Sam John commented on HBASE-21981:
----------------------------------------

We have multi threaded way of creating Buffers for bucket cache. In case of 
file mmaped IOEngine, these buffers are obtained by mapping a file from a 
specific offset to length.  When an RS starts and create the buffers by mapping 
the file, we get N buffers into ByteBufferArray at index 0 to N-1. In 
'backingMap' we keep the blocks offset info considering these buffers index 
order.  When RS restarts, the 'backingMap' is recreated. So each of the block 
refers to same old offsets.  But this time the order of file mapping might be 
different. So we will not be really getting back the same block  from file.

> MMaped bucket cache IOEngine does not work with persistence
> -----------------------------------------------------------
>
>                 Key: HBASE-21981
>                 URL: https://issues.apache.org/jira/browse/HBASE-21981
>             Project: HBase
>          Issue Type: Bug
>          Components: BucketCache
>    Affects Versions: 2.1.3
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: Anoop Sam John
>            Priority: Major
>             Fix For: 3.0.0, 2.2.0, 2.0.5, 2.3.0, 2.1.4
>
>
> The MMap based IOEngines does not retrieve the data back if 
> 'hbase.bucketcache.persistent.path' is enabled. FileIOEngine works fine but 
> only the FileMMapEngine has this problem.
> The reason is that we don't get the byte buffers in the proper order while 
> reading back from the file in case of persistence.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to