Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
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]>
- Loading branch information