ctubbsii commented on PR #2069:
URL: https://github.com/apache/zookeeper/pull/2069#issuecomment-1740239164

   @kezhuw Sorry, I might be confused about the relationship between the 
proposed quorumSync parameter and the behavior that users see. I agree `sync + 
read -> dated data` should be considered a bug.
   
   This is the situation I'm imagining, so please correct me if I'm 
misunderstanding something:
   
   * Scenario 1: user does `sync + read` and server side is set to quorumSync 
false. User sees dated data.
   * Scenario 2: user does `sync + read` and server side is set to quorumSync 
true. User sees current data.
   
   The user has way to know what the server's configuration is set to. In both 
scenarios, the user's actions are the same... they call the same APIs to sync 
and read. The problem I'm seeing is that the user has no way to know whether 
they are seeing the buggy behavior or not. So, it's an unreliable experience.
   
   On the other hand, if there was a separate API, the user could explicitly 
call it:
   
   * Scenario 3: user does `sync + read` and no special server-side 
configuration. User sees dated data. (expected, documented in javadoc)
   * Scenario 4: user does `quorumSync + read` using new quorumSync API and no 
special server-side configuration. User sees current data. (also expected, and 
documented in javdoc)
   
   In scenarios 3 and 4, the user can reliably count on the documented 
behavior, based on the method they call. In scenarios 1 and 2, they cannot... 
they have to have some insight into the server-side configuration, which they 
cannot know, in order to have any chance at relying on the correct behavior of 
`sync + read`.
   
   So, I conclude that it'd be better to:
   
   1. Have separate public APIs so the user can rely on the behavior they 
expect for the API they used, OR
   2. Just fix the current sync behavior, **without** making it configurable, 
so user can rely on the behavior they expect once ZK is upgraded. They don't 
need to have special knowledge of how the server is configured... only that it 
has been upgraded to fix the bug.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@zookeeper.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to