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

stack commented on HBASE-10201:
-------------------------------

Trying this patch out.... reviewing v12.

Suggest you drop memstore from the names of these configs:

hbase.hregion.memstore.percolumnfamilyflush.enabled
hbase.hregion.memstore.percolumnfamilyflush.size.lower.bound

Its only memstores that are flushed so having memstore in the name is redundant.

Same here MEMSTORE_COLUMNFAMILY_FLUSHSIZE_LOWER_BOUND and here 
getMemStoreColumnFamilyFlushSizeLowerBound

This is a nit. Can do later if we make more patches.

Importing HRegion into HMaster should be avoided -- we are reaching across 
packages -- especially just to get at a define. Move this config up into 
HConstants since it is used by two major subpackages or probably better, put it 
into HRegionInfo.

So I enable this feature in hbase-site.xml and I can enable it globally also in 
hbase-site.xml but I can also enable it on a per-table basis?  Thats good.

Why do we have to change the API on FlushRequest?  Can the flush implementation 
not do all the necessary figuring of what to flush reading necessary configs., 
etc.?  Maybe you need the flag to 'force' a full region flush?  If so, should 
it be a force flag rather than the effete 'selectiveFlushRequest'?

Add the fact that we are doing per col flushing as an attribute on summary line 
printed out on region instantiation rather than give it its own log line:

+    if (LOG.isDebugEnabled()) {
+      LOG.debug("Per Column Family Flushing: " + perColumnFamilyFlushEnabled);
+    }

More review later. This patch is great.  THere were some rejects but easy to 
fix. Let me try and get some numbers to help make the case for this patch going 
in.






> Port 'Make flush decisions per column family' to trunk
> ------------------------------------------------------
>
>                 Key: HBASE-10201
>                 URL: https://issues.apache.org/jira/browse/HBASE-10201
>             Project: HBase
>          Issue Type: Improvement
>          Components: wal
>            Reporter: Ted Yu
>            Assignee: zhangduo
>            Priority: Critical
>             Fix For: 1.0.0, 2.0.0, 0.98.9
>
>         Attachments: 3149-trunk-v1.txt, HBASE-10201-0.98.patch, 
> HBASE-10201-0.98_1.patch, HBASE-10201-0.98_2.patch, HBASE-10201-0.99.patch, 
> HBASE-10201.patch, HBASE-10201_1.patch, HBASE-10201_10.patch, 
> HBASE-10201_11.patch, HBASE-10201_12.patch, HBASE-10201_2.patch, 
> HBASE-10201_3.patch, HBASE-10201_4.patch, HBASE-10201_5.patch, 
> HBASE-10201_6.patch, HBASE-10201_7.patch, HBASE-10201_8.patch, 
> HBASE-10201_9.patch
>
>
> Currently the flush decision is made using the aggregate size of all column 
> families. When large and small column families co-exist, this causes many 
> small flushes of the smaller CF. We need to make per-CF flush decisions.



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

Reply via email to