etcd-io / etcd

Distributed reliable key-value store for the most critical data of a distributed system
https://etcd.io
Apache License 2.0
47.79k stars 9.77k forks source link

add quorum count support auto prompting from leaner to member or step back from member to learner #16848

Open armstrongli opened 1 year ago

armstrongli commented 1 year ago

What would you like to be added?

the cluster size is dynamic natively in etcd(by adding/removing members to/from existing cluster) . it also brings a challenge for etcd to continuous providing high performance request/response that the quorum keeps climing along with more and more members.

add --quorum-num=xx feature to etcd to make etcd self awaring the quorum size and make the later joined members to be learning instead of member. also, learner automatically prompt itself to be a member to guarantee the quorum to avoid the lose of availability.

Why is this needed?

etcd performance decreases when more and more members are added into cluster. e.g. 3/5 is quorum when the cluster size is 5. 5/9 is quorum when the cluster size is 9. the performance of etcd downgraded auto.

Catalyst-47 commented 11 months ago

@jmhbnz Can I work on this?

Can I also get some context on how you want it to be implemented if you have already something on your mind?

jmhbnz commented 11 months ago

Hi @Catalyst-47 - Thanks for your interest in this. You're welcome to start exploring this however please be aware the etcd project are very focused on the v3.6 roadmap currently so this new feature might experience delays getting through review.

Additionally this feature might not be suitable for new contributors as it's not yet clear on the design. You're welcome to put forward a proposal just please bear in mind as mentioned above there might be delays getting feedback as this new feature is not on our v3.6 roadmap.

Catalyst-47 commented 11 months ago

sure makes sense, let me check any issue which is available on the roadmap