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

Eshcar Hillel commented on HBASE-15016:
---------------------------------------

bq. 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?

changed the name to RegionServerProxy

bq. 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?

There are two counters: memstoreSize and memstoreFluctuatingSize, and the 
active size is their difference.
Changed the names to 
{code}
long addAndGetGlobalMemstoreSize(long size)
long addAndGetGlobalMemstoreFluctuatingSize(long size)
long getGlobalMemstoreActiveSize()
{code}

bq. 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?

One of the services that the new memstore needs from region is getting the wal 
sequence id, as they are associated with the segments in the memstore, so these 
are exposed here.

bq. 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?

changed to getMemStoreActiveSize()

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

Yes, because it is used in the implementation of the requestFlushIfNeeded().
Changed names to memstoreFlushSizeLB memstoreFlushSizeUB

bq. 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):

I'm not sure where exactly you mean, can you point this in RB? Would be happy 
to learn what is the right way to update the method to compute the region class 
size.  

> 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