[ https://issues.apache.org/jira/browse/HBASE-12295?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14311886#comment-14311886 ]
zhangduo commented on HBASE-12295: ---------------------------------- Oh, here it is. I would say this is the most important thing if we want to avoid copying. A simple way is using phantom reference, but the disadvantage is also evident, we can not trigger a gc that only scan BucketCacheEntries when BucketCache is full(Actually I only know that System.gc() can trigger a FullGC on hotspot JVM). Another way is maintaining reference counting by ourselves. But this is also hard since we even want to use the BB that fetched from BucketCache in RpcServer. There are too many places we need to decrease reference count because we can drop the BB in many ways(rpc send message over, scanner skip, exception...). What do you guys think? Thanks~ > Prevent block eviction under us if reads are in progress from the BBs > --------------------------------------------------------------------- > > Key: HBASE-12295 > URL: https://issues.apache.org/jira/browse/HBASE-12295 > Project: HBase > Issue Type: Sub-task > Components: regionserver, Scanners > Reporter: ramkrishna.s.vasudevan > Assignee: ramkrishna.s.vasudevan > Fix For: 2.0.0 > > > While we try to serve the reads from the BBs directly from the block cache, > we need to ensure that the blocks does not get evicted under us while > reading. This JIRA is to discuss and implement a strategy for the same. -- This message was sent by Atlassian JIRA (v6.3.4#6332)