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

Edward Bortnikov commented on HBASE-15016:
------------------------------------------

[~eshcar], could you please attach a small doc/diagram describing the semantics 
of all the counters (Active, Fluctuating, etc) how they are used by flush 
policy. It would be a good intro to this patch. 

In my understanding, the idea is to have different flush threshold depending on 
the store types. In the default store implementation, there are an active 
segment (mutable) and a snapshot segment (immutable). In the compacting store 
(which is not part of this patch), there is also a fluctuating part (pipeline), 
consisting of possibly multiple immutable segments. This affects the arithmetic 
of when to flush, because we are interested to let the fluctuating part grow 
for a while, and exploit it as buffer for redundancy elimination. The challenge 
is to make HRegion flush triggering polymorphic without really understanding 
much about these delicacies. That was the reason for exposing a small number of 
counters that the policy can deal with. 

[~stack], do you have in mind a more elegant solution maybe? 

> StoreServices facility in Region
> --------------------------------
>
>                 Key: HBASE-15016
>                 URL: https://issues.apache.org/jira/browse/HBASE-15016
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Eshcar Hillel
>            Assignee: Eshcar Hillel
>         Attachments: HBASE-15016-V01.patch, HBASE-15016-V02.patch, 
> HBASE-15016-V03.patch
>
>
> The default implementation of a memstore ensures that between two flushes the 
> memstore size increases monotonically. Supporting new memstores that store 
> data in different formats (specifically, compressed), or that allows to 
> eliminate data redundancies in memory (e.g., via compaction), means that the 
> size of the data stored in memory can decrease even between two flushes. This 
> requires memstores to have access to facilities that manipulate region 
> counters and synchronization.
> This subtasks introduces a new region interface -- StoreServices, through 
> which store components can access these facilities.



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

Reply via email to