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

stack commented on HBASE-15016:
-------------------------------

Who is providing the services? The Region or the Store?

When I read the StoreServices Interface, it looks like Services we want of the 
Region?  If so, should it be RegionServices (for use by the Store) rather than 
StoreServices?

Why is it a fluctuating memstore size rather than just memstore size?  This 
method in StoreServices, addAndGetFluctuatingMemstoreSize, is it for all Stores 
in the region or for the current Store only?

Is getMemstoreActiveSize for the current Store or all Stores under the Region?

This call is actually complicated in implementation... getWalSequenceId... and 
not used elsewhere by this patch (maybe it is used over in the pipeline patch). 
Does it have to be exposed?

Drop  'ForFlushPolicy' from name of this method...

getMemStoreSizeForFlushPolicy

... it is redundant (yeah, size is determined by a flush policy but don't have 
to say so in method name). This is to be use by the region figuring when to 
flush?

Does the soft limit in the HRegion belong in this patch?

In the hbase-common, you refer to a class type that is downstream in 
hbase-server. We are trying to have modules not have inter-dependencies if 
possible... at least not ones that go in this direction... from upstream to 
downstream dependency (downstream to upstream is ok):

nit:   public static final int STORE_SERVICES;

Does getStoreServices have to be public? Store is in same package as Region.

High-level, all makes sense. Concepts in patch need to be made more clean cut. 
Thanks.



> 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
>
>
> 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