cockroachdb / cockroachdb/cockroach

server: add guardrails to prevent nodes with different architectures from joining the cluster

Open
#148,845 2 comments 0 reactions 0 assignees View on GitHub
A-s390x C-enhancement T-db-server
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.