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

dev: replacement for scripts/bench #80407

Closed
jordanlewis opened this issue Apr 22, 2022 · 0 comments · Fixed by #85724
Closed

dev: replacement for scripts/bench #80407

jordanlewis opened this issue Apr 22, 2022 · 0 comments · Fixed by #85724
Assignees
Labels
A-build-system C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) T-dev-inf

Comments

@jordanlewis
Copy link
Member

jordanlewis commented Apr 22, 2022

scripts/bench is a very nice wrapper that permits diffing a benchmark between two branches or SHAs.

Dev should support this natively, or at least, there should be a scripts/bench update or clone that uses dev instead of make.

Epic CRDB-8349

@jordanlewis jordanlewis added the C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) label Apr 22, 2022
@jlinder jlinder added sync-me and removed sync-me labels May 20, 2022
@irfansharif irfansharif self-assigned this Jul 18, 2022
craig bot pushed a commit that referenced this issue Aug 8, 2022
83527: sqlproxyccl: support pgwire cancel protocol r=jeffswenson,jaylim-crl a=rafiss

See individual commits.

This implements the RFC here: https://github.com/cockroachdb/cockroach/blob/969bcf747a9f87f5231a043c9833c51d9979a549/docs/RFCS/20220202_pgwire_compatible_cancel.md

84728: ttl: improve row-level TTL performance using DistSQL r=rafiss a=ecwall

fixes #76914

Release note (performance improvement): The row-level TTL job has been modified
to distribute work using DistSQL. This usually results in the leaseholder nodes
managing deleting of the spans they own.

85080: cluster-ui: add sql api request wrapper and clusterLocks request r=xinhaoz a=xinhaoz

This commit allows DB Console to use the SQL over HTTP API from
`/api/v2/sql/`. A new fetch wrapper providing the custom header
necessary for the API and using content type JSON has been added.

The clusterLocksApi components added in this commit use the above
SQL api functions to query from the `crdb_internal.cluster_locks`
table.

Release note: None

85684: colexec: reorder some fields to reduce memory footprint r=yuzefovich a=yuzefovich

This commit applies some of the fixes found by the `fieldalignment` tool
on the colexec packages which reorder some fields in the structs so that
the memory footprint is reduced.

Release note: None

85697: kvcoord: optimize usages of BatchRequest.IsReverse r=yuzefovich a=yuzefovich

This commit audits all places where `BatchRequest.IsReverse` is called
and ensures that we call that only when necessary. In particular, it
avoids the call altogether when a request needs to be resumed as well as
when verifying the batch initially when key and / or bytes limits are
present.

Release note: None

85708: storage: don't synthesize MVCC point tombstones below point keys r=jbowens a=erikgrinaker

This patch changes `pointSynthesizingIter` (and by extension MVCC scans
and gets) to not synthesize MVCC point tombstones below existing point
keys, only above them. Point tombstones are still synthesized at the
start bound of all MVCC range tombstones regardless.

This patch only focuses on the behavioral change, and is not concerned
with performance. A later patch will address performance optimizations.
Even so, this can significantly improve `MVCCScan` performance with many
range keys:

```
MVCCScan_Pebble/rows=10000/versions=1/valueSize=64/numRangeKeys=0-24      2.76ms ± 1%    2.78ms ± 2%      ~     (p=0.274 n=8+10)
MVCCScan_Pebble/rows=10000/versions=1/valueSize=64/numRangeKeys=1-24      6.34ms ± 1%    5.72ms ± 1%    -9.80%  (p=0.000 n=10+10)
MVCCScan_Pebble/rows=10000/versions=1/valueSize=64/numRangeKeys=100-24    60.1ms ± 7%    23.6ms ± 7%   -60.72%  (p=0.000 n=10+10)
MVCCGet_Pebble/batch=true/versions=1/valueSize=8/numRangeKeys=0-24        2.73µs ± 1%    2.72µs ± 1%      ~     (p=0.268 n=9+10)
MVCCGet_Pebble/batch=true/versions=1/valueSize=8/numRangeKeys=1-24        5.40µs ± 1%    5.46µs ± 1%    +1.18%  (p=0.001 n=10+10)
MVCCGet_Pebble/batch=true/versions=1/valueSize=8/numRangeKeys=100-24       171µs ± 1%     170µs ± 1%      ~     (p=0.247 n=10+10)
MVCCGet_Pebble/batch=true/versions=10/valueSize=8/numRangeKeys=0-24       3.87µs ± 1%    3.85µs ± 0%    -0.58%  (p=0.030 n=10+9)
MVCCGet_Pebble/batch=true/versions=10/valueSize=8/numRangeKeys=1-24       7.11µs ± 1%    7.24µs ± 1%    +1.83%  (p=0.000 n=9+10)
MVCCGet_Pebble/batch=true/versions=10/valueSize=8/numRangeKeys=100-24      179µs ± 1%     178µs ± 1%      ~     (p=0.063 n=10+10)
MVCCGet_Pebble/batch=true/versions=100/valueSize=8/numRangeKeys=0-24      10.4µs ± 5%    10.0µs ± 3%    -3.96%  (p=0.013 n=10+9)
MVCCGet_Pebble/batch=true/versions=100/valueSize=8/numRangeKeys=1-24      15.9µs ± 3%    16.2µs ± 3%    +2.11%  (p=0.007 n=10+10)
MVCCGet_Pebble/batch=true/versions=100/valueSize=8/numRangeKeys=100-24     222µs ± 1%     220µs ± 2%      ~     (p=0.063 n=10+10)
```

Resolves #83899.

Release note: None

85713: storage: add `MVCCRangeKeyStack.CloneInto()` r=jbowens a=erikgrinaker

This patch adds a `CloneInto()` method for MVCC range key stacks, which
will reuse the allocations of the given stack.

An alternative approach was also considered that would use a single
allocation for all byte slices, but in the vast majority of cases range
keys will have no values, and so we'll typically only make two
allocations anyway. This can be reconsidered later.

Callers haven't been updated to make use of this yet. A pass will be
made later, which will also apply various other MVCC range key
optimizations.

```
name                                                                          time/op
MVCCRangeKeyStack_Clone/keySize=16/numVersions=1/withValues=0/Clone-24         123ns ± 0%
MVCCRangeKeyStack_Clone/keySize=16/numVersions=1/withValues=0/CloneInto-24    16.7ns ± 0%
MVCCRangeKeyStack_Clone/keySize=16/numVersions=1/withValues=1/Clone-24         149ns ± 0%
MVCCRangeKeyStack_Clone/keySize=16/numVersions=1/withValues=1/CloneInto-24    17.2ns ± 0%
MVCCRangeKeyStack_Clone/keySize=16/numVersions=3/withValues=0/Clone-24         169ns ± 1%
MVCCRangeKeyStack_Clone/keySize=16/numVersions=3/withValues=0/CloneInto-24    27.5ns ± 0%
MVCCRangeKeyStack_Clone/keySize=16/numVersions=3/withValues=1/Clone-24         202ns ± 0%
MVCCRangeKeyStack_Clone/keySize=16/numVersions=3/withValues=1/CloneInto-24    27.9ns ± 0%
MVCCRangeKeyStack_Clone/keySize=16/numVersions=10/withValues=0/Clone-24        291ns ± 1%
MVCCRangeKeyStack_Clone/keySize=16/numVersions=10/withValues=0/CloneInto-24   64.8ns ± 0%
MVCCRangeKeyStack_Clone/keySize=16/numVersions=10/withValues=1/Clone-24        327ns ± 0%
MVCCRangeKeyStack_Clone/keySize=16/numVersions=10/withValues=1/CloneInto-24   64.5ns ± 0%
MVCCRangeKeyStack_Clone/keySize=16/numVersions=100/withValues=0/Clone-24      1.94µs ± 1%
MVCCRangeKeyStack_Clone/keySize=16/numVersions=100/withValues=0/CloneInto-24   544ns ± 0%
MVCCRangeKeyStack_Clone/keySize=16/numVersions=100/withValues=1/Clone-24      2.01µs ± 1%
MVCCRangeKeyStack_Clone/keySize=16/numVersions=100/withValues=1/CloneInto-24   551ns ± 0%
```

Resolves #85381.

Release note: None

85724: scripts: update benchmarking script to use `dev` r=irfansharif a=irfansharif

Fixes #80407. Usage:

    BENCHES=BenchmarkTracing/1node/scan/trace=off \
      PKG=./pkg/bench \
      scripts/bench HEAD HEAD~1

Invokes the following underneath the hood:

    dev bench ./pkg/bench --timeout=5m \
      --filter=BenchmarkTracing/1node/scan/trace=off --count=10 \
      --bench-mem -v --ignore-cache

Release note: None

85742: sql/randgen: avoid invalid inverted indexes in CREATE TABLE r=fqazi a=fqazi

Previously, the create table made via the randgen component
could create invalid CREATE TABLE statements where the last
columns of an inverted index were descending. This could
lead to unexpected failures in certain workloads, which
expected valid statements from this components. To address
this, this patch stops randgen from generating CREATE table
statements with invalid inverted indexes.

Release note: None

Co-authored-by: Rafi Shamim <[email protected]>
Co-authored-by: Evan Wall <[email protected]>
Co-authored-by: Xin Hao Zhang <[email protected]>
Co-authored-by: Yahor Yuzefovich <[email protected]>
Co-authored-by: Erik Grinaker <[email protected]>
Co-authored-by: irfan sharif <[email protected]>
Co-authored-by: Faizan Qazi <[email protected]>
@craig craig bot closed this as completed in 973c5a8 Aug 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-build-system C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) T-dev-inf
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants