-
Sorry if the question has been answered before, but I have been unable to find an authoritative answer. The documentation seems to me to have conflicting information. I have found this issue, but the last question has been left unanswered. There are also lately a few issues and PRs about linearizability tests for watch which could imply that it is in fact linearizable. The documentation lists these guarantees considering watch:
The Ordered property would seem to imply linearizability. However, elsewhere in the documentation it is explicitly stated that watch is not linearizable:
This seems to me to be clashing with the previous guarantee. So now I am unsure what to believe. Or is ordering guaranteed and the issue is that the events may be received late and thus do not satisfy linearizability guarantees regarding wall-clock? I guess that would mean the last sentence to mean that a user should check the revision against latest revision it got from the server some other way but I would not expect that to be the case. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 3 replies
-
That's not correct. Linearizability implies order, but order doesn't imply linearizability. Watch is serializable, which implies that responses are ordered. However as watch is eventually consistent we cannot guarantee linearizability. In simple terms watch returns a history of changes done in etcd, but events in watch might be delayed by unspecified time from when they really happened.
Yes. |
Beta Was this translation helpful? Give feedback.
That's not correct. Linearizability implies order, but order doesn't imply linearizability. Watch is serializable, which implies that responses are ordered. However as watch is eventually consistent we cannot guarantee linearizability. In simple terms watch returns a history of changes done in etcd, but events in watch might be delayed by unspecified time from when they really happened.
Yes.