hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeffrey Zhong (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-11580) Failover handling for secondary region replicas
Date Sat, 28 Feb 2015 00:34:05 GMT

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

Jeffrey Zhong commented on HBASE-11580:

I've reviewed the patch and left some comments on the review board. +1 assuming unit tests

For the "flush amplifications", it's more an optimization issue which can be addressed by
secondary replica sends the seqId it firstly sees as part of flush request. Primary region
can check if it's last flushed seqId is larger than the passed seqId from replica to decide
if to perform a flush.

> Failover handling for secondary region replicas
> -----------------------------------------------
>                 Key: HBASE-11580
>                 URL: https://issues.apache.org/jira/browse/HBASE-11580
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Enis Soztutar
>            Assignee: Enis Soztutar
> With the async wal approach (HBASE-11568), the edits are not persisted (to wal) in the
secondary region replicas. However this means that we have to deal with secondary region replica
> We can seek to re-replicate the edits from primary to the secondary when the secondary
region is opened in another server but this would mean to setup a replication queue again,
and holding on to the wals for longer. 
> Instead, we can design it so that the edits form the secondaries are not persisted to
wal, and if the secondary replica fails over, it will not start serving reads until it has
guaranteed that it has all the past data. 
> For guaranteeing that the secondary replica has all the edits before serving reads, we
can use flush and region opening markers. Whenever a region open event is seen, it writes
all the files at the time of opening to wal (HBASE-11512). In case of flush, the flushed file
is written as well, and the secondary replica can do a ls for the store files and pick up
all the files before the seqId of the flushed file. So, in this design, the secodary replica
will wait until it sees and replays a flush or region open marker from wal from primary. and
then start serving. For speeding up replica opening time, we can trigger a flush to the primary
whenever the secondary replica opens as an optimization. 

This message was sent by Atlassian JIRA

View raw message