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