[
https://issues.apache.org/jira/browse/HBASE-21957?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Zheng Hu updated HBASE-21957:
-----------------------------
Description:
After HBASE-12295, we have block with MemoryType.SHARED or
MemoryType.EXCLUSIVE, the block in offheap BucketCache will be shared, and have
an reference count to track its life cycle. If no rpc reference to the shared
block, then the block can be evicted.
while after the HBASE-21916, we introduced an refcount for ByteBuff, then I
think we can unify the two into one. tried to fix this when preparing patch
for HBASE-21879, but seems can be different sub-task, and it won't affect the
main logic of HBASE-21879, so create a seperate one.
!HBASE-21957-design.png!
Attached an picture here, in general , for those HFileBlocks which is mapping
to the same BucketEntry, they should share the same refCnt. That's to say, if
an bucketEntry has a refCnt-a, then all HFileBlocks related to this bucket
entry shoud also use this refCnt-a to track its memory.
was:
After HBASE-12295, we have block with MemoryType.SHARED or
MemoryType.EXCLUSIVE, the block in offheap BucketCache will be shared, and have
an reference count to track its life cycle. If no rpc reference to the shared
block, then the block can be evicted.
while after the HBASE-21916, we introduced an refcount for ByteBuff, then I
think we can unify the two into one. tried to fix this when preparing patch
for HBASE-21879, but seems can be different sub-task, and it won't affect the
main logic of HBASE-21879, so create a seperate one.
!HBASE-21957-design.png!
Attached an picture here, in general
> Unify refCount of BucketEntry and refCount of hbase.nio.ByteBuff into one
> -------------------------------------------------------------------------
>
> Key: HBASE-21957
> URL: https://issues.apache.org/jira/browse/HBASE-21957
> Project: HBase
> Issue Type: Sub-task
> Reporter: Zheng Hu
> Assignee: Zheng Hu
> Priority: Major
> Attachments: HBASE-21957-design.png
>
>
> After HBASE-12295, we have block with MemoryType.SHARED or
> MemoryType.EXCLUSIVE, the block in offheap BucketCache will be shared, and
> have an reference count to track its life cycle. If no rpc reference to the
> shared block, then the block can be evicted.
> while after the HBASE-21916, we introduced an refcount for ByteBuff, then I
> think we can unify the two into one. tried to fix this when preparing patch
> for HBASE-21879, but seems can be different sub-task, and it won't affect the
> main logic of HBASE-21879, so create a seperate one.
> !HBASE-21957-design.png!
> Attached an picture here, in general , for those HFileBlocks which is
> mapping to the same BucketEntry, they should share the same refCnt. That's
> to say, if an bucketEntry has a refCnt-a, then all HFileBlocks related to
> this bucket entry shoud also use this refCnt-a to track its memory.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)