Read requests are handled locally at each Zookeeper server. So it is possible for a read request to return a stale value even though a more recent update to the same znode has been committed. Does this statement still hold if the Zookeeper follower serving the read request is the one which has just served the recent update request?
For example, client A connects to follower X. And client A issues a request to update znode /a from 0 to 1. After receiving this request, follower X forwards this request to the leader. Then the leader broadcasts this update proposal to all the Zookeeper servers. After a quorum of the followers commit the update request, the update succeeds. Then client A issues a read request to get the value of znode /a. And follower X receives this read request. So if follower X is not among the quorum and follower X has not committed the update to catch up with the leader, it is still possible for client A to get a stale value of znode /a. In this case, the return value is 0. Is my understanding correct? Jingguo Yao