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

Raul Gutierrez Segales commented on ZOOKEEPER-1607:
---------------------------------------------------

Arrrg I guess dependent patches aren't applied :(
                
> Read-only Observer
> ------------------
>
>                 Key: ZOOKEEPER-1607
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1607
>             Project: ZooKeeper
>          Issue Type: Improvement
>          Components: server
>    Affects Versions: 3.4.3
>            Reporter: Thawan Kooburat
>         Attachments: persistent-read-only-for-observers.patch
>
>
> This feature reused some of the mechanism already provided by 
> ReadOnlyZooKeeper (ZOOKEEPER-704) but implemented in a different way
> Goal: read-only clients should be able to connect to the observer or continue 
> to read data from the observer event when there is an outage of underling 
> quorum. This means that it is possible for the observer to provide 100% read 
> uptime for read-only local session (ZOOKEEPER-1147)
> Implementation: 
> The observer don't tear down itself when it lose connection with the leader. 
> It only close the connection associated with non read-only sessions and 
> global sessions. So the client can try other observer if this is a temporal 
> failure. 
> During the outage, the observer switch to read-only mode. All the pending and 
> future write requests get will get NOT_READONLY error. Read-only state 
> transition is sent to all session on that observer. The observer only accepts 
> a new connection from a read-only client.
> When the observer is able to reconnect to the leader. It sends state 
> transition (CONNECTED_STATE) to all current session. If it is able to 
> synchronize with the leader using DIFF, the steam of txns is sent through the 
> commit processor instead of applying to the DataTree directly to prevent 
> raise condition between in-flight read requests (see ZOOKEEPER-1505). The 
> client will receive watch events correctly and can start issuing write 
> requests. 
> However, if the observer is getting the snapshot. It need to drop all the 
> connection since it cannot fire a watch correctly.  
>  

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to