[ 
https://issues.apache.org/jira/browse/HBASE-20480?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16467208#comment-16467208
 ] 

Anastasia Braginsky commented on HBASE-20480:
---------------------------------------------

I am back with the fix suggestion. As explained in the description while binary 
searching through CCM (given Cell c as an input) we need to create temporary 
cell objects in order to perform the comparison. One binary search 
approximately creates 20 such objects, which are later a subject for garbage 
collection. This creates unnecessary overhead when running read commands. We 
suggest to use and reuse the ThreadLocal variables per CCM, so the Cell's 
object is reset and then reused for next comparison. According to preliminary 
experiments this gives about 3% performance boost in read-only scenarios. The 
suggested fix is attached. Your ideas are very welcome!

> Multiple one-time cell objects are allocated and de-allocated when working 
> with CCM
> -----------------------------------------------------------------------------------
>
>                 Key: HBASE-20480
>                 URL: https://issues.apache.org/jira/browse/HBASE-20480
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Anastasia Braginsky
>            Priority: Major
>         Attachments: HBASE-20480-V02.patch
>
>
> We believe that the cause for some read performance degradation while working 
> with CellChunkMap (CCM). Multiple one-time cell objects are allocated and 
> de-allocated when performing multiple reads and working with CCM MemStore. We 
> have a couple of ideas for solution. More details will follow.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to