cockroachdb / cockroachdb/cockroach
server: add guardrails to prevent nodes with different architectures from joining the cluster
- Dominant language
- Go
- Stars
- 32.5k
- Forks
- 4.1k
- PR merge metrics
- PR metrics pending
Description
As part of triaging s390x failures, we realized that heterogeneous clusters (i.e. where some nodes are running on s390x while others are running on a different architecture) can produce incorrect query results (see #148773, #148783). I'm not sure whether we document whether this is allowed or not, but it'd be nice if we had guardrails that would prevent such clusters from being created in the first place.
Concretely, I imagine that when the cluster is initialized, we determine the architecture on the first node and call it "the target architecture of the cluster". Whenever a new node joins, we compare whether its architecture matches the "target", and we'd deny the join if there is a mismatch. Perhaps we could reduce the severity of enforcement and apply denial only to s390x (since it has known problems) while printing a warning for all others.
Jira issue: CRDB-51847
Contributor guide
Assessment
This issue has not been assessed yet.