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

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

After reading master's FSHLog carefully, I found that it is hard to add a kv to 
store with seqNum.

FSHLog use Disruptor to append WAL, and the sequenceId of region is determined 
in the consumer thread, not the thread calling appendNoSync, which means the 
logSeqNum in HLogKey may have not been set after calling appendNoSync, and 
there is no guaranty of when will the value be set except syncing WAL. 

Move memstore modification after syncing WAL has a big impact on the code and I 
do not think its a good idea.

I will try to find another way to record the oldest sequenceId per store which 
works both for 0.98 and master(maybe a data structure like mvcc, but per store).

> 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
>            Reporter: Ted Yu
>         Attachments: 3149-trunk-v1.txt, HBASE-10201-0.98.patch, 
> HBASE-10201-0.98_1.patch, HBASE-10201-0.98_2.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