mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00

Cluster version is the min major.minor of all members in the etcd cluster. Cluster version is set to the min version that a etcd member is compatible with when first bootstrapp. During a rolling upgrades, the cluster version will be updated automatically. For example: ``` Cluster [a:1, b:1 ,c:1] -> clusterVersion 1 update a -> 2, b -> 2 after a detection Cluster [a:2, b:2 ,c:1] -> clusterVersion 1, since c is still 1 update c -> 2 after a detection Cluster [a:2, b:2 ,c:2] -> clusterVersion 2 ``` The API/raft component can utilize clusterVersion to determine if it can accept a client request or a raft RPC. We choose polling rather than pushing since we want to use the same logic for cluster version detection and (TODO) cluster version checking. Before a member actually joins a etcd cluster, it should check the version of the cluster. Push does not work since the other members cannot push version info to it before it actually joins. Moreover, we do not want our raft RPC system (which is doing the heartbeat pushing) to coordinate cluster version.
This directory tree is generated automatically by godep. Please do not edit. See https://github.com/tools/godep for more information.