Description
Prerequisite for #9232.
Currently cluster related information still relies on v2store. They need to be migrated to use v3 backend. For example, during restart, member reads cluster attributes (such as cluster version) from the V2 store, which could be very stale. This is because the V2 store recovers from the last snapshot point.
This is probably also needed by #11362. As during downgrade, member restarts with a lower version binary. During restart process, it first checks if its binary version is compatible with cluster version. Because the cluster version info could be very stale and therefore the check might fail. This could cause user confusion.
Task list
- [ ] use proto for cluster attributes (membership, cluster version, etc) - optional (need to decide), this is for better compatibility if we change cluster struct later
- create v3 server internal raft type for changes to any cluster attribute other than members (cluster version, member attributes, etc).
- deprecate internal v2 API calls for cluster attributes, instead use v3 requests. (They will not be re-applied if older than current state in v3 backend.)
- during apply, store cluster attributes to v3 backend.
- during restart, recover cluster attributes from v3 backend instead of from v2 store.
- [ ] make sure this is compatible with existing raft node restart process.
- [ ] make sure this is compatible with existing snapshot restore process.
Activity