Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

roachtest: enforce region affinity #121437

Open
srosenberg opened this issue Apr 1, 2024 · 1 comment
Open

roachtest: enforce region affinity #121437

srosenberg opened this issue Apr 1, 2024 · 1 comment
Labels
C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) T-testeng TestEng Team

Comments

@srosenberg
Copy link
Member

srosenberg commented Apr 1, 2024

Roachtests can optionally specify regions (and availability zones) via ClusterSpec, e.g., ClusterSpec.GCE.Zones. If the regions are specified, they will be used by roachprod, when provisioning a corresponding cluster. The specified regions are assumed to be absolute. That is, only availability zones are allowed to change during provisioning, while the regions never change. E.g., a transient cluster provisioning error may be retried in a different availability zone [1]. The primary reason for disallowing specified regions to change is egress. A number of roachtests may end up importing/exporting data from regional cloud buckets [2].

When regions are unspecified (via ClusterSpec), a cloud-specific default is chosen. The defaults correspond to the regional buckets (in each cloud), used for import/export. However, a default may be at odds with the availability of other resources [3], [4]. (E.g., GCE t2a instances are not available in us-east1.) Subsequently, switching to another region may result in unwanted egress, for the corresponding roachtest. Thus, we should consider how best to enforce "region affinity" in this case. Perhaps, this could be a heuristic based on the size and the type of a roachtest; e.g., large backup/restore tests should stay within the region defaults, unless otherwise specified (via ClusterSpec). Since input/output buckets aren't part of the spec., inferring those will be challenging. Making regions a required spec., for every roachtest seems rather inflexible.

[1] #120714
[2] #111371
[3] #117661
[4] #114523

Jira issue: CRDB-37257

@srosenberg srosenberg added C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) T-testeng TestEng Team labels Apr 1, 2024
@srosenberg srosenberg added this to Triage in Test Engineering via automation Apr 1, 2024
Copy link

blathers-crl bot commented Apr 1, 2024

cc @cockroachdb/test-eng

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) T-testeng TestEng Team
Projects
Development

No branches or pull requests

1 participant