Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test if watch is sequential #18141

Open
serathius opened this issue Jun 7, 2024 · 3 comments · May be fixed by #18264
Open

Test if watch is sequential #18141

serathius opened this issue Jun 7, 2024 · 3 comments · May be fixed by #18264

Comments

@serathius
Copy link
Member

What would you like to be added?

I don't think watch is linearizable (doesn't touch read index), but it should be at least sequential. https://jepsen.io/consistency/models/sequential

Explanation of the naming difference between sequential and serializable: #17918 (comment)

I think we should test:

  • Watch request revision vs etcd local revision and local compact revision.
  • Watch response first event revision vs etcd local revision.
  • Watch response compacted vs etcd local compact revision.

Those are ideas, don't know if everyone can be easily validated

Why is this needed?

More robustness

@ah8ad3
Copy link
Contributor

ah8ad3 commented Jun 12, 2024

This is interesting to me, i would like to take it, but i'm a bit busy this week if it is still open until next week i'll work on it.

@serathius
Copy link
Member Author

serathius commented Jun 12, 2024

Node, sequential is not a global, but a per process property where in etcd process is a etcd server. To validate it we need to be able to identify which server served the request. One option would be to persist MemberId from ResponseHeader in client reports.

@ah8ad3
Copy link
Contributor

ah8ad3 commented Jun 24, 2024

/assign
I read a lot about difference between sequential and linearization, it's still a bit confusing but more cleaner to me, i will try to see examples and try to implement this. Just in case i assign myself to show i'm working on it. But if anyone have a ready solution feel free to assign yourself and close PR.

@ah8ad3 ah8ad3 linked a pull request Jul 2, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging a pull request may close this issue.

2 participants