[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-2418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Flavio Junqueira updated ZOOKEEPER-2418:
----------------------------------------
    Assignee: Nicholas Wolchko

> txnlog diff sync can skip sending some transactions to followers
> ----------------------------------------------------------------
>
>                 Key: ZOOKEEPER-2418
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2418
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: server
>    Affects Versions: 3.5.1
>            Reporter: Nicholas Wolchko
>            Assignee: Nicholas Wolchko
>            Priority: Critical
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> If the leader is having disk issues so that its on disk txnlog is behind the 
> in memory commit log, it will send a DIFF that is missing the transactions in 
> between the two.
> Example:
> There are 5 hosts in the cluster. 1 is the leader. 5 is disconnected.
> We commit up to zxid 1000.
> At zxid 450, the leader's disk stalls, but we still commit transactions 
> because 2,3,4 are up and acking writes.
> At zxid 1000, the txnlog on the leader has 1-450 and the commit log has 
> 500-1000.
> Then host 5 regains its connection to the cluster and syncs with the leader. 
> It will receive a DIFF containing zxids 1-450 and 500-1000.
> This is because queueCommittedProposals in the LearnerHandler just queues 
> everything within its zxid range. It doesn't give an error if there is a gap 
> between peerLastZxid and the iterator it is queueing from.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to