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