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: run load split tests with different split objectives #97540

Closed
kvoli opened this issue Feb 23, 2023 · 0 comments
Closed

roachtest: run load split tests with different split objectives #97540

kvoli opened this issue Feb 23, 2023 · 0 comments
Assignees
Labels
A-kv-distribution Relating to rebalancing and leasing. C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) T-kv KV Team

Comments

@kvoli
Copy link
Collaborator

kvoli commented Feb 23, 2023

Is your feature request related to a problem? Please describe.
The splits/load tests assert on the number of ranges after splitting. The assertion is assuming QPS load based splitting. In #97424 we enabled CPU load based splitting by default.

This issue is to add load based split tests which target CPU load based splitting, similar to the existing tests.

Jira issue: CRDB-24746

@kvoli kvoli added C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) A-kv-distribution Relating to rebalancing and leasing. labels Feb 23, 2023
@kvoli kvoli self-assigned this Feb 23, 2023
@blathers-crl blathers-crl bot added the T-kv KV Team label Feb 23, 2023
kvoli added a commit to kvoli/cockroach that referenced this issue Feb 23, 2023
This commit updates the clusters used in `splits/load` roachtests to use
QPS load based splitting, rather than CPU, which was enabled by default
in cockroachdb#97424.

These tests were failing as they assumed QPS load based splitting when
calculating the number of final ranges to assert against.

These tests should be run against all load based split objectives, this
is tracked in cockroachdb#97540.

Resolves: cockroachdb#97494
Resolves: cockroachdb#97455
Informs:  cockroachdb#97540

Release note: None
craig bot pushed a commit that referenced this issue Feb 23, 2023
97542: roachtest: use qps splitting for splits/load tests r=shralex a=kvoli

This commit updates the clusters used in `splits/load` roachtests to use
QPS load based splitting, rather than CPU, which was enabled by default
in #97424.

These tests were failing as they assumed QPS load based splitting when
calculating the number of final ranges to assert against.

These tests should be run against all load based split objectives, this
is tracked in #97540.

Resolves: #97494
Resolves: #97455
Informs:  #97540

Co-authored-by: Austen McClernon <[email protected]>
kvoli added a commit to kvoli/cockroach that referenced this issue Apr 26, 2023
Previously, only setting a QPS split threshold and objective was
possible in the `splits/load` roachtests. This commit enables setting
cpu as an objective and providing a threshold.

Part of cockroachdb#97540

Release note: None
kvoli added a commit to kvoli/cockroach that referenced this issue Apr 26, 2023
This commit separates out the workload from the verification parameters
in the `splits/load` roachtests. This is done so that different
workloads, not just KV can be run in the load split test runner.

Part of: cockroachdb#97540

Release note: None
kvoli added a commit to kvoli/cockroach that referenced this issue Apr 26, 2023
There were no roachtests which used the new CPU load based splitter.
This commit adds similar tests as those that exist for QPS:

- spanning
- uniform
- sequential

In addition to select YCSB tests which have a column family schema and
zipfian/latest distributions. It is a known issue that the YCSB
workloads will commonly return a start key due to column families when
splitting a range with a single hot row cockroachdb#102136.

- YCSB/A
- YCSB/B
- YCSB/D
- YCSB/E

Both the minimum and maximimum number of ranges after some time is
asserted on. For YCSB and KV uniform, the period is 10 minutes. For
KV spanning and sequential, the period is 60 seconds.

Unlike QPS splitting, which will not attempt to split Spanning requests,
CPU splitting will attempt to split ranges with higher CPU than the
threshold, as this does not result in signal amplification unlike QPS -
which doubles the QPS on each split of span request heavy ranges.

Resolves: cockroachdb#97540

Release note: None
kvoli added a commit to kvoli/cockroach that referenced this issue Apr 27, 2023
Previously, only setting a QPS split threshold and objective was
possible in the `splits/load` roachtests. This commit enables setting
cpu as an objective and providing a threshold.

Part of cockroachdb#97540

Release note: None
kvoli added a commit to kvoli/cockroach that referenced this issue Apr 27, 2023
This commit separates out the workload from the verification parameters
in the `splits/load` roachtests. This is done so that different
workloads, not just KV can be run in the load split test runner.

Part of: cockroachdb#97540

Release note: None
@craig craig bot closed this as completed in aa95836 Apr 27, 2023
blathers-crl bot pushed a commit that referenced this issue Apr 27, 2023
Previously, only setting a QPS split threshold and objective was
possible in the `splits/load` roachtests. This commit enables setting
cpu as an objective and providing a threshold.

Part of #97540

Release note: None
blathers-crl bot pushed a commit that referenced this issue Apr 27, 2023
This commit separates out the workload from the verification parameters
in the `splits/load` roachtests. This is done so that different
workloads, not just KV can be run in the load split test runner.

Part of: #97540

Release note: None
blathers-crl bot pushed a commit that referenced this issue Apr 27, 2023
There were no roachtests which used the new CPU load based splitter.
This commit adds similar tests as those that exist for QPS:

- spanning
- uniform
- sequential

In addition to select YCSB tests which have a column family schema and
zipfian/latest distributions. It is a known issue that the YCSB
workloads will commonly return a start key due to column families when
splitting a range with a single hot row #102136.

- YCSB/A
- YCSB/B
- YCSB/D
- YCSB/E

Both the minimum and maximimum number of ranges after some time is
asserted on. For YCSB and KV uniform, the period is 10 minutes. For
KV spanning and sequential, the period is 60 seconds.

Unlike QPS splitting, which will not attempt to split Spanning requests,
CPU splitting will attempt to split ranges with higher CPU than the
threshold, as this does not result in signal amplification unlike QPS -
which doubles the QPS on each split of span request heavy ranges.

Resolves: #97540

Release note: None
cameronnunez pushed a commit to cameronnunez/cockroach that referenced this issue May 2, 2023
Previously, only setting a QPS split threshold and objective was
possible in the `splits/load` roachtests. This commit enables setting
cpu as an objective and providing a threshold.

Part of cockroachdb#97540

Release note: None
cameronnunez pushed a commit to cameronnunez/cockroach that referenced this issue May 2, 2023
This commit separates out the workload from the verification parameters
in the `splits/load` roachtests. This is done so that different
workloads, not just KV can be run in the load split test runner.

Part of: cockroachdb#97540

Release note: None
cameronnunez pushed a commit to cameronnunez/cockroach that referenced this issue May 2, 2023
There were no roachtests which used the new CPU load based splitter.
This commit adds similar tests as those that exist for QPS:

- spanning
- uniform
- sequential

In addition to select YCSB tests which have a column family schema and
zipfian/latest distributions. It is a known issue that the YCSB
workloads will commonly return a start key due to column families when
splitting a range with a single hot row cockroachdb#102136.

- YCSB/A
- YCSB/B
- YCSB/D
- YCSB/E

Both the minimum and maximimum number of ranges after some time is
asserted on. For YCSB and KV uniform, the period is 10 minutes. For
KV spanning and sequential, the period is 60 seconds.

Unlike QPS splitting, which will not attempt to split Spanning requests,
CPU splitting will attempt to split ranges with higher CPU than the
threshold, as this does not result in signal amplification unlike QPS -
which doubles the QPS on each split of span request heavy ranges.

Resolves: cockroachdb#97540

Release note: None
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-kv-distribution Relating to rebalancing and leasing. C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) T-kv KV Team
Projects
None yet
Development

No branches or pull requests

1 participant