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

Elliott Clark commented on HBASE-13876:
---------------------------------------

* tolerance should be configurable and I don't think that 0 is going to be the 
correct value.
* line 141 compare them to tolerance.
* For line 140 - 154 It would be easier to reason about the percent if you 
don't add them but rather compare them to tolerance
so instead of something like:
{code}if (percentChangeInEvictCount + percentChangeInFlushes > tolerance){code}
something like 
{code}if ( precentChanceInEvictCount > 0 && percentChangeInEvictCount  > 
tolerance  && precentChangeInFlushes < 0 && Math.abs(percentChangeInFlushes) > 
tolerance){code}
* Need to make sure that no two calls to tune will ever run concurrently.
* Probably easier to have a variable like prevTuneDirection rather than using 
the same variable for both meanings.

> Improving performance of HeapMemoryManager
> ------------------------------------------
>
>                 Key: HBASE-13876
>                 URL: https://issues.apache.org/jira/browse/HBASE-13876
>             Project: HBase
>          Issue Type: Improvement
>          Components: hbase, regionserver
>    Affects Versions: 2.0.0, 1.0.1, 1.1.0, 1.1.1
>            Reporter: Abhilash
>            Assignee: Abhilash
>            Priority: Minor
>         Attachments: HBASE-13876-v2.patch, HBASE-13876-v3.patch, 
> HBASE-13876-v4.patch, HBASE-13876.patch
>
>
> I am trying to improve the performance of DefaultHeapMemoryTuner by 
> introducing some more checks. The current checks under which the 
> DefaultHeapMemoryTuner works are very rare so I am trying to weaken these 
> checks to improve its performance.
> Check current memstore size and current block cache size. If we are using 
> less than 50% of currently available block cache size  we say block cache is 
> sufficient and same for memstore. This check will be very effective when 
> server is either load heavy or write heavy. Earlier version just waited for 
> number of evictions / number of flushes to be zero which are very rare.
> Otherwise based on percent change in number of cache misses and number of 
> flushes we increase / decrease memory provided for caching / memstore. After 
> doing so, on next call of HeapMemoryTuner we verify that last change has 
> indeed decreased number of evictions / flush ( combined). I am doing this 
> analysis by comparing percent change (which is basically nothing but 
> normalized derivative) of number of evictions and number of flushes during 
> last two periods. The main motive for doing this was that if we have random 
> reads then we will be having a lot of cache misses. But even after increasing 
> block cache we wont be able to decrease number of cache misses and we will 
> revert back and eventually we will not waste memory on block caches. This 
> will also help us ignore random short term spikes in reads / writes.
>   



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to