Yutong Xiao created HBASE-26681:
-----------------------------------

             Summary: Introduce a little RAMBuffer for bucketcache to reduce gc 
and improve throughput
                 Key: HBASE-26681
                 URL: https://issues.apache.org/jira/browse/HBASE-26681
             Project: HBase
          Issue Type: Improvement
          Components: BucketCache, Performance
            Reporter: Yutong Xiao
            Assignee: Yutong Xiao
             Fix For: 1.7.2


In branch-1, BucketCache just allocate new onheap bytebuffer to construct new 
HFileBlock when get cached blocks. This rough allocation increases the GC 
pressure for those "hot" blocks. 
Here introduce a RAMBuffer for those "hot" blocks in BucketCache. The thought 
is simple. The RAMBuffer is an timeout expiring cache. When a Multi-level block 
is read twice, we cache it in the RAMBuffer. When the block timeout in the 
cache (e.g. 60s), that means the block is not being accessed in 60s, we evict 
it. Not like LRU, we do not cache block when the whole RAMBuffer size reaches 
to a threshold (to fit different workload, the threshold is dynamic). This will 
prevent the RAMBuffer from being churned.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to