[
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)