[ https://issues.apache.org/jira/browse/HBASE-23066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16988473#comment-16988473 ]
ramkrishna.s.vasudevan commented on HBASE-23066: ------------------------------------------------ [~jacob.leblanc] Thanks for your detailed write up. I saw the reply from [~anoop.hbase]. hope it helps. How ever since you have prefetch also enabled - it means every time your cache was always getting loaded asynchronously and that was helping you in a big way always. Can you just give some rough numbers on you cache size and the number of blocks that you always see in your cache? Is there a sporadic raise in your block count and if so by how much and hope your cache size is good enough to have them. [~jacob.leblanc] If you are fine with the latest PR - I can just merge them and work on the other sub task to make this configuration based on a size so that all the older files' blocks are not cacheed. > Allow cache on write during compactions when prefetching is enabled > ------------------------------------------------------------------- > > Key: HBASE-23066 > URL: https://issues.apache.org/jira/browse/HBASE-23066 > Project: HBase > Issue Type: Improvement > Components: Compaction, regionserver > Affects Versions: 1.4.10 > Reporter: Jacob LeBlanc > Assignee: Jacob LeBlanc > Priority: Minor > Fix For: 2.3.0, 1.6.0 > > Attachments: HBASE-23066.patch, performance_results.png, > prefetchCompactedBlocksOnWrite.patch > > > In cases where users care a lot about read performance for tables that are > small enough to fit into a cache (or the cache is large enough), > prefetchOnOpen can be enabled to make the entire table available in cache > after the initial region opening is completed. Any new data can also be > guaranteed to be in cache with the cacheBlocksOnWrite setting. > However, the missing piece is when all blocks are evicted after a compaction. > We found very poor performance after compactions for tables under heavy read > load and a slower backing filesystem (S3). After a compaction the prefetching > threads need to compete with threads servicing read requests and get > constantly blocked as a result. > This is a proposal to introduce a new cache configuration option that would > cache blocks on write during compaction for any column family that has > prefetch enabled. This would virtually guarantee all blocks are kept in cache > after the initial prefetch on open is completed allowing for guaranteed > steady read performance despite a slow backing file system. -- This message was sent by Atlassian Jira (v8.3.4#803005)