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

Zheng Hu commented on HBASE-20138:
----------------------------------

Currently, the open region process as following:
1.  open store files  and get the maxSeqId = max(maxSeqIdFromRecoverEditFile,  
maxSeqIdFromHFile) ; 
2.  write the maxSeqId + 1 (Let's call it nextSeqId)  into the  max sequence id 
file( under directory recover.edit ). 
3.  write a region open marker  to WAL. 

if failed in step.3 , and open the region multiple times,  then the  sequence 
id will increase many times,  and we'll write a barrier X for the region when 
open successfully.   That's to say,  we'll have a barrier range [X',  X ),  
which has no wal .   According the serial replication implementation,   we'll 
be stuck. 

To handle this case,   we need change  step.2 :  write maxSeqId into the max 
sequence id file ,  instead of maxSeqId + 1.   

> Find a way to deal with the conflicts when updating replication position
> ------------------------------------------------------------------------
>
>                 Key: HBASE-20138
>                 URL: https://issues.apache.org/jira/browse/HBASE-20138
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Duo Zhang
>            Assignee: Zheng Hu
>            Priority: Major
>             Fix For: 3.0.0, 2.1.0
>
>         Attachments: HBASE-20138.v1.patch
>
>
> For now if a table is not created with SERIAL_REPLICATION_SCOPE and later 
> converted to SERIAL_REPLICATION_SCOPE , then we may have multiple replication 
> sources which replicate the different ranges for the same region and update 
> the queue storage concurrently. This will cause problem if the lower range 
> finish at last since the replication position will be wrong...
> Need to find a way to deal with this.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to