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

zhangduo commented on HBASE-10201:
----------------------------------

[~stack] I followed RegionSplitPolicy to write FlushPolicy, expect that 
[~tedyu] suggested using FlushPolicyFactory and placing the factory method in 
it instead of FlushPolicy. Maybe the code of RegionSplitPolicy is old and need 
refactoring too...

{quote}
The FlushPolicy api is a little odd. It implements Configured but where do you 
do a setConf on it? Then in the configureForRegion method, you take a Region 
but all it is used for is to emit region name on Strings and to get instance of 
HTableDescriptor. The flush takes a list of stores. Can't it get them from the 
region it was given when configuredForRegion? This is a nit comment. Ignore for 
now.
{quote}
ReflectionUtils.newInstance(clazz, conf) will call setConf. And I agreed that 
if we implement configureForRegion, then the list of stores is not necessary 
when doing selection. Can be fixed later.

[~jeffreyz] I think the biggest problem is that this patch change the 
flushSeqId generation. flushSeqId will not be bumped if we do not flush all 
stores. I think the flushSeqId should be called as "highestFlushedToDiskSeqId" 
in this patch. And actually I do not know where we use FlushMarker so I do not 
know the meaning of flushSeqId in the Marker...

Thanks.

> 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_13.patch, 
> HBASE-10201_13.patch, HBASE-10201_14.patch, HBASE-10201_15.patch, 
> HBASE-10201_16.patch, HBASE-10201_17.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, compactions.png, count.png, io.png, memstore.png
>
>
> 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