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

How does etcd compute the revision number in an atomic and scalable fashion? #11054

Closed
arjunsingri opened this issue Aug 20, 2019 · 2 comments
Closed

Comments

@arjunsingri
Copy link

Just wondering how etcd computes the revision number that is monotonically increasing but is also able to support a high write throughput.

@jingyih
Copy link
Contributor

jingyih commented Aug 20, 2019

I'm afraid I do not have a short or complete answer for this.

To answer the first half of the question regarding revision number:
To ensure linearizability guarantee, all mutating requests, once agreed by majority of servers in a cluster (via Raft consensus protocol), are applied sequentially to the key value store. Every mutating request increases the revision of store by 1.

The second half question involves optimization in many layers in the system. For example, starting from v3.2, mutating requests are batched: #7105. Starting from v3.4, long running reads do not block other requests including writes: #10523. etc.

@jingyih
Copy link
Contributor

jingyih commented Aug 21, 2019

Closing this for now. Feel free to reopen if there are further questions.

@jingyih jingyih closed this as completed Aug 21, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants