metric: replace histogram backing with goodhistogram#168347
metric: replace histogram backing with goodhistogram#168347angles-n-daemons wants to merge 2 commits intocockroachdb:masterfrom
Conversation
|
Merging to
After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here |
|
Your pull request contains more than 1000 changes. It is strongly encouraged to split big PRs into smaller chunks. 🦉 Hoot! I am a Blathers, a bot for CockroachDB. My owner is dev-inf. |
2c154b4 to
13bd321
Compare
bfc8439 to
bd2d363
Compare
🟢 Sysbench [SQL, 3node, oltp_read_write]
Reproducebenchdiff binaries: mkdir -p benchdiff/bd2d363/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/bd2d3631bf84bfea7b83738a6bbb55603fe062af/bin/pkg_sql_tests benchdiff/bd2d363/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/bd2d363/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
mkdir -p benchdiff/d7f43f1/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/d7f43f10758cc0c772a67a863cad69935f44d96c/bin/pkg_sql_tests benchdiff/d7f43f1/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/d7f43f1/bin/1058449141/cockroachdb_cockroach_pkg_sql_testsbenchdiff command: # NB: for best (most stable) results, also add a suitable `--benchtime` that
# results in ~1s to ~5s of benchmark runs. For example, if ops average ~3ms, a
# benchtime of `1000x` is appropriate.
#
# Some benchmarks (in particular BenchmarkSysbench) output additional memory
# profiles covering only the execution (excluding the setup/teardown) - those
# should be preferred for analysis since they more closely correspond to what's
# reported as B/op and alloc/op.
benchdiff --run=^BenchmarkSysbench/SQL/3node/oltp_read_write$ --old=d7f43f1 --new=bd2d363 --memprofile ./pkg/sql/tests🟢 Sysbench [KV, 3node, oltp_read_only]
Reproducebenchdiff binaries: mkdir -p benchdiff/bd2d363/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/bd2d3631bf84bfea7b83738a6bbb55603fe062af/bin/pkg_sql_tests benchdiff/bd2d363/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/bd2d363/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
mkdir -p benchdiff/d7f43f1/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/d7f43f10758cc0c772a67a863cad69935f44d96c/bin/pkg_sql_tests benchdiff/d7f43f1/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/d7f43f1/bin/1058449141/cockroachdb_cockroach_pkg_sql_testsbenchdiff command: # NB: for best (most stable) results, also add a suitable `--benchtime` that
# results in ~1s to ~5s of benchmark runs. For example, if ops average ~3ms, a
# benchtime of `1000x` is appropriate.
#
# Some benchmarks (in particular BenchmarkSysbench) output additional memory
# profiles covering only the execution (excluding the setup/teardown) - those
# should be preferred for analysis since they more closely correspond to what's
# reported as B/op and alloc/op.
benchdiff --run=^BenchmarkSysbench/KV/3node/oltp_read_only$ --old=d7f43f1 --new=bd2d363 --memprofile ./pkg/sql/tests🟢 Sysbench [KV, 3node, oltp_write_only]
Reproducebenchdiff binaries: mkdir -p benchdiff/bd2d363/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/bd2d3631bf84bfea7b83738a6bbb55603fe062af/bin/pkg_sql_tests benchdiff/bd2d363/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/bd2d363/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
mkdir -p benchdiff/d7f43f1/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/d7f43f10758cc0c772a67a863cad69935f44d96c/bin/pkg_sql_tests benchdiff/d7f43f1/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/d7f43f1/bin/1058449141/cockroachdb_cockroach_pkg_sql_testsbenchdiff command: # NB: for best (most stable) results, also add a suitable `--benchtime` that
# results in ~1s to ~5s of benchmark runs. For example, if ops average ~3ms, a
# benchtime of `1000x` is appropriate.
#
# Some benchmarks (in particular BenchmarkSysbench) output additional memory
# profiles covering only the execution (excluding the setup/teardown) - those
# should be preferred for analysis since they more closely correspond to what's
# reported as B/op and alloc/op.
benchdiff --run=^BenchmarkSysbench/KV/3node/oltp_write_only$ --old=d7f43f1 --new=bd2d363 --memprofile ./pkg/sql/testsArtifactsdownload: mkdir -p new
gcloud storage cp gs://cockroach-microbench-ci/artifacts/bd2d3631bf84bfea7b83738a6bbb55603fe062af/24417019886-1/\* new/
mkdir -p old
gcloud storage cp gs://cockroach-microbench-ci/artifacts/d7f43f10758cc0c772a67a863cad69935f44d96c/24417019886-1/\* old/built with commit: bd2d3631bf84bfea7b83738a6bbb55603fe062af |
|
Detected infrastructure failure (matched: ). Automatically rerunning failed jobs. (run link) |
aabcc9c to
37ce9ba
Compare
|
Detected infrastructure failure (matched: self-hosted runner lost communication with the server). Automatically rerunning failed jobs. (run link) |
|
Detected infrastructure failure (matched: ). Automatically rerunning failed jobs. (run link) |
37ce9ba to
dff278d
Compare
|
Detected infrastructure failure (matched: ). Automatically rerunning failed jobs. (run link) |
How did you conclude it's unused? Should it just be converted like other histograms, or it became impossible with this change? |
|
Detected infrastructure failure (matched: ). Automatically rerunning failed jobs. (run link) |
9c12626 to
1b8e172
Compare
|
Detected infrastructure failure (matched: self-hosted runner lost communication with the server). Automatically rerunning failed jobs. (run link) |
🟢 Sysbench [SQL, 3node, oltp_read_write]
Reproducebenchdiff binaries: mkdir -p benchdiff/1b8e172/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/1b8e1726eb58458c208c88e8565d9b4afccca4a5/bin/pkg_sql_tests benchdiff/1b8e172/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/1b8e172/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
mkdir -p benchdiff/d7f43f1/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/d7f43f10758cc0c772a67a863cad69935f44d96c/bin/pkg_sql_tests benchdiff/d7f43f1/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/d7f43f1/bin/1058449141/cockroachdb_cockroach_pkg_sql_testsbenchdiff command: # NB: for best (most stable) results, also add a suitable `--benchtime` that
# results in ~1s to ~5s of benchmark runs. For example, if ops average ~3ms, a
# benchtime of `1000x` is appropriate.
#
# Some benchmarks (in particular BenchmarkSysbench) output additional memory
# profiles covering only the execution (excluding the setup/teardown) - those
# should be preferred for analysis since they more closely correspond to what's
# reported as B/op and alloc/op.
benchdiff --run=^BenchmarkSysbench/SQL/3node/oltp_read_write$ --old=d7f43f1 --new=1b8e172 --memprofile ./pkg/sql/tests🟢 Sysbench [KV, 3node, oltp_read_only]
Reproducebenchdiff binaries: mkdir -p benchdiff/1b8e172/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/1b8e1726eb58458c208c88e8565d9b4afccca4a5/bin/pkg_sql_tests benchdiff/1b8e172/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/1b8e172/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
mkdir -p benchdiff/d7f43f1/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/d7f43f10758cc0c772a67a863cad69935f44d96c/bin/pkg_sql_tests benchdiff/d7f43f1/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/d7f43f1/bin/1058449141/cockroachdb_cockroach_pkg_sql_testsbenchdiff command: # NB: for best (most stable) results, also add a suitable `--benchtime` that
# results in ~1s to ~5s of benchmark runs. For example, if ops average ~3ms, a
# benchtime of `1000x` is appropriate.
#
# Some benchmarks (in particular BenchmarkSysbench) output additional memory
# profiles covering only the execution (excluding the setup/teardown) - those
# should be preferred for analysis since they more closely correspond to what's
# reported as B/op and alloc/op.
benchdiff --run=^BenchmarkSysbench/KV/3node/oltp_read_only$ --old=d7f43f1 --new=1b8e172 --memprofile ./pkg/sql/tests🟢 Sysbench [KV, 3node, oltp_write_only]
Reproducebenchdiff binaries: mkdir -p benchdiff/1b8e172/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/1b8e1726eb58458c208c88e8565d9b4afccca4a5/bin/pkg_sql_tests benchdiff/1b8e172/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/1b8e172/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
mkdir -p benchdiff/d7f43f1/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/d7f43f10758cc0c772a67a863cad69935f44d96c/bin/pkg_sql_tests benchdiff/d7f43f1/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/d7f43f1/bin/1058449141/cockroachdb_cockroach_pkg_sql_testsbenchdiff command: # NB: for best (most stable) results, also add a suitable `--benchtime` that
# results in ~1s to ~5s of benchmark runs. For example, if ops average ~3ms, a
# benchtime of `1000x` is appropriate.
#
# Some benchmarks (in particular BenchmarkSysbench) output additional memory
# profiles covering only the execution (excluding the setup/teardown) - those
# should be preferred for analysis since they more closely correspond to what's
# reported as B/op and alloc/op.
benchdiff --run=^BenchmarkSysbench/KV/3node/oltp_write_only$ --old=d7f43f1 --new=1b8e172 --memprofile ./pkg/sql/testsArtifactsdownload: mkdir -p new
gcloud storage cp gs://cockroach-microbench-ci/artifacts/1b8e1726eb58458c208c88e8565d9b4afccca4a5/24467588522-1/\* new/
mkdir -p old
gcloud storage cp gs://cockroach-microbench-ci/artifacts/d7f43f10758cc0c772a67a863cad69935f44d96c/24467588522-1/\* old/built with commit: 1b8e1726eb58458c208c88e8565d9b4afccca4a5 |
|
Detected infrastructure failure (matched: ). Automatically rerunning failed jobs. (run link) |
ddd1198 to
1ca9b50
Compare
|
Detected infrastructure failure (matched: self-hosted runner lost communication with the server). Automatically rerunning failed jobs. (run link) |
🟢 Sysbench [SQL, 3node, oltp_read_write]
Reproducebenchdiff binaries: mkdir -p benchdiff/1ca9b50/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/1ca9b50b8158f1e4bc14a228ddfc3081e29914de/bin/pkg_sql_tests benchdiff/1ca9b50/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/1ca9b50/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
mkdir -p benchdiff/d7f43f1/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/d7f43f10758cc0c772a67a863cad69935f44d96c/bin/pkg_sql_tests benchdiff/d7f43f1/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/d7f43f1/bin/1058449141/cockroachdb_cockroach_pkg_sql_testsbenchdiff command: # NB: for best (most stable) results, also add a suitable `--benchtime` that
# results in ~1s to ~5s of benchmark runs. For example, if ops average ~3ms, a
# benchtime of `1000x` is appropriate.
#
# Some benchmarks (in particular BenchmarkSysbench) output additional memory
# profiles covering only the execution (excluding the setup/teardown) - those
# should be preferred for analysis since they more closely correspond to what's
# reported as B/op and alloc/op.
benchdiff --run=^BenchmarkSysbench/SQL/3node/oltp_read_write$ --old=d7f43f1 --new=1ca9b50 --memprofile ./pkg/sql/tests🟢 Sysbench [KV, 3node, oltp_read_only]
Reproducebenchdiff binaries: mkdir -p benchdiff/1ca9b50/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/1ca9b50b8158f1e4bc14a228ddfc3081e29914de/bin/pkg_sql_tests benchdiff/1ca9b50/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/1ca9b50/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
mkdir -p benchdiff/d7f43f1/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/d7f43f10758cc0c772a67a863cad69935f44d96c/bin/pkg_sql_tests benchdiff/d7f43f1/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/d7f43f1/bin/1058449141/cockroachdb_cockroach_pkg_sql_testsbenchdiff command: # NB: for best (most stable) results, also add a suitable `--benchtime` that
# results in ~1s to ~5s of benchmark runs. For example, if ops average ~3ms, a
# benchtime of `1000x` is appropriate.
#
# Some benchmarks (in particular BenchmarkSysbench) output additional memory
# profiles covering only the execution (excluding the setup/teardown) - those
# should be preferred for analysis since they more closely correspond to what's
# reported as B/op and alloc/op.
benchdiff --run=^BenchmarkSysbench/KV/3node/oltp_read_only$ --old=d7f43f1 --new=1ca9b50 --memprofile ./pkg/sql/tests🟢 Sysbench [KV, 3node, oltp_write_only]
Reproducebenchdiff binaries: mkdir -p benchdiff/1ca9b50/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/1ca9b50b8158f1e4bc14a228ddfc3081e29914de/bin/pkg_sql_tests benchdiff/1ca9b50/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/1ca9b50/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
mkdir -p benchdiff/d7f43f1/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/d7f43f10758cc0c772a67a863cad69935f44d96c/bin/pkg_sql_tests benchdiff/d7f43f1/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/d7f43f1/bin/1058449141/cockroachdb_cockroach_pkg_sql_testsbenchdiff command: # NB: for best (most stable) results, also add a suitable `--benchtime` that
# results in ~1s to ~5s of benchmark runs. For example, if ops average ~3ms, a
# benchtime of `1000x` is appropriate.
#
# Some benchmarks (in particular BenchmarkSysbench) output additional memory
# profiles covering only the execution (excluding the setup/teardown) - those
# should be preferred for analysis since they more closely correspond to what's
# reported as B/op and alloc/op.
benchdiff --run=^BenchmarkSysbench/KV/3node/oltp_write_only$ --old=d7f43f1 --new=1ca9b50 --memprofile ./pkg/sql/testsArtifactsdownload: mkdir -p new
gcloud storage cp gs://cockroach-microbench-ci/artifacts/1ca9b50b8158f1e4bc14a228ddfc3081e29914de/24474690715-1/\* new/
mkdir -p old
gcloud storage cp gs://cockroach-microbench-ci/artifacts/d7f43f10758cc0c772a67a863cad69935f44d96c/24474690715-1/\* old/built with commit: 1ca9b50b8158f1e4bc14a228ddfc3081e29914de |
73d2ff9 to
2512dee
Compare
🟢 Sysbench [SQL, 3node, oltp_read_write]
Reproducebenchdiff binaries: mkdir -p benchdiff/2512dee/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/2512deeec446ce110af25feeef1a64823a4cae40/bin/pkg_sql_tests benchdiff/2512dee/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/2512dee/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
mkdir -p benchdiff/7b5db8f/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/7b5db8f7a08cbd09f42e0638dc84c2e50160be01/bin/pkg_sql_tests benchdiff/7b5db8f/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/7b5db8f/bin/1058449141/cockroachdb_cockroach_pkg_sql_testsbenchdiff command: # NB: for best (most stable) results, also add a suitable `--benchtime` that
# results in ~1s to ~5s of benchmark runs. For example, if ops average ~3ms, a
# benchtime of `1000x` is appropriate.
#
# Some benchmarks (in particular BenchmarkSysbench) output additional memory
# profiles covering only the execution (excluding the setup/teardown) - those
# should be preferred for analysis since they more closely correspond to what's
# reported as B/op and alloc/op.
benchdiff --run=^BenchmarkSysbench/SQL/3node/oltp_read_write$ --old=7b5db8f --new=2512dee --memprofile ./pkg/sql/tests🟢 Sysbench [KV, 3node, oltp_read_only]
Reproducebenchdiff binaries: mkdir -p benchdiff/2512dee/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/2512deeec446ce110af25feeef1a64823a4cae40/bin/pkg_sql_tests benchdiff/2512dee/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/2512dee/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
mkdir -p benchdiff/7b5db8f/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/7b5db8f7a08cbd09f42e0638dc84c2e50160be01/bin/pkg_sql_tests benchdiff/7b5db8f/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/7b5db8f/bin/1058449141/cockroachdb_cockroach_pkg_sql_testsbenchdiff command: # NB: for best (most stable) results, also add a suitable `--benchtime` that
# results in ~1s to ~5s of benchmark runs. For example, if ops average ~3ms, a
# benchtime of `1000x` is appropriate.
#
# Some benchmarks (in particular BenchmarkSysbench) output additional memory
# profiles covering only the execution (excluding the setup/teardown) - those
# should be preferred for analysis since they more closely correspond to what's
# reported as B/op and alloc/op.
benchdiff --run=^BenchmarkSysbench/KV/3node/oltp_read_only$ --old=7b5db8f --new=2512dee --memprofile ./pkg/sql/tests🟢 Sysbench [KV, 3node, oltp_write_only]
Reproducebenchdiff binaries: mkdir -p benchdiff/2512dee/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/2512deeec446ce110af25feeef1a64823a4cae40/bin/pkg_sql_tests benchdiff/2512dee/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/2512dee/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
mkdir -p benchdiff/7b5db8f/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/7b5db8f7a08cbd09f42e0638dc84c2e50160be01/bin/pkg_sql_tests benchdiff/7b5db8f/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/7b5db8f/bin/1058449141/cockroachdb_cockroach_pkg_sql_testsbenchdiff command: # NB: for best (most stable) results, also add a suitable `--benchtime` that
# results in ~1s to ~5s of benchmark runs. For example, if ops average ~3ms, a
# benchtime of `1000x` is appropriate.
#
# Some benchmarks (in particular BenchmarkSysbench) output additional memory
# profiles covering only the execution (excluding the setup/teardown) - those
# should be preferred for analysis since they more closely correspond to what's
# reported as B/op and alloc/op.
benchdiff --run=^BenchmarkSysbench/KV/3node/oltp_write_only$ --old=7b5db8f --new=2512dee --memprofile ./pkg/sql/testsArtifactsdownload: mkdir -p new
gcloud storage cp gs://cockroach-microbench-ci/artifacts/2512deeec446ce110af25feeef1a64823a4cae40/24516444639-1/\* new/
mkdir -p old
gcloud storage cp gs://cockroach-microbench-ci/artifacts/7b5db8f7a08cbd09f42e0638dc84c2e50160be01/24516444639-1/\* old/built with commit: 2512deeec446ce110af25feeef1a64823a4cae40 |
Replace the prometheus-backed and HDR histogram implementations with cockroachdb/goodhistogram, a lock-free exponential histogram library that is faster (~20ns/op vs ~130ns/op), more memory-efficient (~0.85KB vs ~19KB), and natively produces Prometheus-compatible output (both conventional and native histogram formats). Key changes: - Remove HdrHistogram entirely, completing TODO cockroachdb#96357. Delete hdrhistogram.go, remove HistogramModePreferHdrLatency, MaxVal, SigFigs from HistogramOptions, and the COCKROACH_ENABLE_HDR_HISTOGRAMS env var. - Rewrite the Histogram struct to use *goodhistogram.Histogram as its backing store. RecordValue is now lock-free. The 2-window rotation scheme is preserved but uses goodhistogram instances instead of prometheus.HistogramInternal. - Rewrite ManualWindowHistogram to use goodhistogram in RecordValue+Rotate mode. The Update mode (used by pebble metrics) retains its prometheus backing since pebble provides data in prometheus format. - Rewrite HistogramSnapshot to support dual backing: goodhistogram snapshots (primary) and prometheusgo.Histogram (compat for Update mode and schedulerlatency). - Remove the HistogramMode type and Mode field from HistogramOptions since there is now only one histogram implementation. - Remove the unused RaftQuotaPoolPercentUsed histogram. - Remove native histogram env vars (COCKROACH_ENABLE_PROMETHEUS_NATIVE_HISTOGRAMS etc.) since goodhistogram always produces native histogram fields. - Add COCKROACH_ENABLE_PROMETHEUS_NATIVE_HISTOGRAMS env var (default true) as a safety valve to revert to the legacy prometheus-backed histogram implementation if issues are discovered. The prometheus dependency upgrades (client_model v0.3.0 -> v0.6.2) required fixing copylocks issues in a few places where the newer protobuf types contain sync.Mutex in MessageState. Histogram bucket boundaries change from hand-tuned values to goodhistogram's exponential scheme, and quantile estimation uses trapezoidal interpolation instead of linear. Both changes improve accuracy. An alternative approach using prometheus native histograms directly (without goodhistogram) is explored in cockroachdb#168352. Fixes: cockroachdb#168274 Epic: CRDB-52498 Release note: None
2512dee to
982a968
Compare
🟢 Sysbench [SQL, 3node, oltp_read_write]
Reproducebenchdiff binaries: mkdir -p benchdiff/982a968/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/982a968c06d38bf6321b3ab8860bc650a38b8656/bin/pkg_sql_tests benchdiff/982a968/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/982a968/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
mkdir -p benchdiff/7b5db8f/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/7b5db8f7a08cbd09f42e0638dc84c2e50160be01/bin/pkg_sql_tests benchdiff/7b5db8f/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/7b5db8f/bin/1058449141/cockroachdb_cockroach_pkg_sql_testsbenchdiff command: # NB: for best (most stable) results, also add a suitable `--benchtime` that
# results in ~1s to ~5s of benchmark runs. For example, if ops average ~3ms, a
# benchtime of `1000x` is appropriate.
#
# Some benchmarks (in particular BenchmarkSysbench) output additional memory
# profiles covering only the execution (excluding the setup/teardown) - those
# should be preferred for analysis since they more closely correspond to what's
# reported as B/op and alloc/op.
benchdiff --run=^BenchmarkSysbench/SQL/3node/oltp_read_write$ --old=7b5db8f --new=982a968 --memprofile ./pkg/sql/tests🟢 Sysbench [KV, 3node, oltp_read_only]
Reproducebenchdiff binaries: mkdir -p benchdiff/982a968/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/982a968c06d38bf6321b3ab8860bc650a38b8656/bin/pkg_sql_tests benchdiff/982a968/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/982a968/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
mkdir -p benchdiff/7b5db8f/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/7b5db8f7a08cbd09f42e0638dc84c2e50160be01/bin/pkg_sql_tests benchdiff/7b5db8f/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/7b5db8f/bin/1058449141/cockroachdb_cockroach_pkg_sql_testsbenchdiff command: # NB: for best (most stable) results, also add a suitable `--benchtime` that
# results in ~1s to ~5s of benchmark runs. For example, if ops average ~3ms, a
# benchtime of `1000x` is appropriate.
#
# Some benchmarks (in particular BenchmarkSysbench) output additional memory
# profiles covering only the execution (excluding the setup/teardown) - those
# should be preferred for analysis since they more closely correspond to what's
# reported as B/op and alloc/op.
benchdiff --run=^BenchmarkSysbench/KV/3node/oltp_read_only$ --old=7b5db8f --new=982a968 --memprofile ./pkg/sql/tests🟢 Sysbench [KV, 3node, oltp_write_only]
Reproducebenchdiff binaries: mkdir -p benchdiff/982a968/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/982a968c06d38bf6321b3ab8860bc650a38b8656/bin/pkg_sql_tests benchdiff/982a968/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/982a968/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
mkdir -p benchdiff/7b5db8f/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/7b5db8f7a08cbd09f42e0638dc84c2e50160be01/bin/pkg_sql_tests benchdiff/7b5db8f/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/7b5db8f/bin/1058449141/cockroachdb_cockroach_pkg_sql_testsbenchdiff command: # NB: for best (most stable) results, also add a suitable `--benchtime` that
# results in ~1s to ~5s of benchmark runs. For example, if ops average ~3ms, a
# benchtime of `1000x` is appropriate.
#
# Some benchmarks (in particular BenchmarkSysbench) output additional memory
# profiles covering only the execution (excluding the setup/teardown) - those
# should be preferred for analysis since they more closely correspond to what's
# reported as B/op and alloc/op.
benchdiff --run=^BenchmarkSysbench/KV/3node/oltp_write_only$ --old=7b5db8f --new=982a968 --memprofile ./pkg/sql/testsArtifactsdownload: mkdir -p new
gcloud storage cp gs://cockroach-microbench-ci/artifacts/982a968c06d38bf6321b3ab8860bc650a38b8656/24520062130-1/\* new/
mkdir -p old
gcloud storage cp gs://cockroach-microbench-ci/artifacts/7b5db8f7a08cbd09f42e0638dc84c2e50160be01/24520062130-1/\* old/built with commit: 982a968c06d38bf6321b3ab8860bc650a38b8656 |
Empty commit to ensure CI rebuilds from scratch and picks up the prototext normalization fix for cross-platform compatibility. Epic: none Release note: None
|
Detected infrastructure failure (matched: self-hosted runner lost communication with the server). Automatically rerunning failed jobs. (run link) |
🟢 Sysbench [SQL, 3node, oltp_read_write]
Reproducebenchdiff binaries: mkdir -p benchdiff/79b639a/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/79b639aee12c096f017809efe4bab5e865bd6f6b/bin/pkg_sql_tests benchdiff/79b639a/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/79b639a/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
mkdir -p benchdiff/7b5db8f/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/7b5db8f7a08cbd09f42e0638dc84c2e50160be01/bin/pkg_sql_tests benchdiff/7b5db8f/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/7b5db8f/bin/1058449141/cockroachdb_cockroach_pkg_sql_testsbenchdiff command: # NB: for best (most stable) results, also add a suitable `--benchtime` that
# results in ~1s to ~5s of benchmark runs. For example, if ops average ~3ms, a
# benchtime of `1000x` is appropriate.
#
# Some benchmarks (in particular BenchmarkSysbench) output additional memory
# profiles covering only the execution (excluding the setup/teardown) - those
# should be preferred for analysis since they more closely correspond to what's
# reported as B/op and alloc/op.
benchdiff --run=^BenchmarkSysbench/SQL/3node/oltp_read_write$ --old=7b5db8f --new=79b639a --memprofile ./pkg/sql/tests🟢 Sysbench [KV, 3node, oltp_read_only]
Reproducebenchdiff binaries: mkdir -p benchdiff/79b639a/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/79b639aee12c096f017809efe4bab5e865bd6f6b/bin/pkg_sql_tests benchdiff/79b639a/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/79b639a/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
mkdir -p benchdiff/7b5db8f/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/7b5db8f7a08cbd09f42e0638dc84c2e50160be01/bin/pkg_sql_tests benchdiff/7b5db8f/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/7b5db8f/bin/1058449141/cockroachdb_cockroach_pkg_sql_testsbenchdiff command: # NB: for best (most stable) results, also add a suitable `--benchtime` that
# results in ~1s to ~5s of benchmark runs. For example, if ops average ~3ms, a
# benchtime of `1000x` is appropriate.
#
# Some benchmarks (in particular BenchmarkSysbench) output additional memory
# profiles covering only the execution (excluding the setup/teardown) - those
# should be preferred for analysis since they more closely correspond to what's
# reported as B/op and alloc/op.
benchdiff --run=^BenchmarkSysbench/KV/3node/oltp_read_only$ --old=7b5db8f --new=79b639a --memprofile ./pkg/sql/tests🟢 Sysbench [KV, 3node, oltp_write_only]
Reproducebenchdiff binaries: mkdir -p benchdiff/79b639a/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/79b639aee12c096f017809efe4bab5e865bd6f6b/bin/pkg_sql_tests benchdiff/79b639a/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/79b639a/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
mkdir -p benchdiff/7b5db8f/bin/1058449141
gcloud storage cp gs://cockroach-microbench-ci/builds/7b5db8f7a08cbd09f42e0638dc84c2e50160be01/bin/pkg_sql_tests benchdiff/7b5db8f/bin/1058449141/cockroachdb_cockroach_pkg_sql_tests
chmod +x benchdiff/7b5db8f/bin/1058449141/cockroachdb_cockroach_pkg_sql_testsbenchdiff command: # NB: for best (most stable) results, also add a suitable `--benchtime` that
# results in ~1s to ~5s of benchmark runs. For example, if ops average ~3ms, a
# benchtime of `1000x` is appropriate.
#
# Some benchmarks (in particular BenchmarkSysbench) output additional memory
# profiles covering only the execution (excluding the setup/teardown) - those
# should be preferred for analysis since they more closely correspond to what's
# reported as B/op and alloc/op.
benchdiff --run=^BenchmarkSysbench/KV/3node/oltp_write_only$ --old=7b5db8f --new=79b639a --memprofile ./pkg/sql/testsArtifactsdownload: mkdir -p new
gcloud storage cp gs://cockroach-microbench-ci/artifacts/79b639aee12c096f017809efe4bab5e865bd6f6b/24522780182-1/\* new/
mkdir -p old
gcloud storage cp gs://cockroach-microbench-ci/artifacts/7b5db8f7a08cbd09f42e0638dc84c2e50160be01/24522780182-1/\* old/built with commit: 79b639aee12c096f017809efe4bab5e865bd6f6b |
Summary
Replace all histogram implementations with
cockroachdb/goodhistogram,
a lock-free exponential histogram that is faster (~20ns/op vs ~130ns/op),
uses less memory (~0.85KB vs ~19KB), and natively produces Prometheus
native histogram output.
Histogramto use*goodhistogram.Histogramas backingManualWindowHistogramRecordValue+Rotate mode to usegoodhistogram (Update mode retains prometheus backing for pebble
compatibility)
HistogramMode,MaxVal,SigFigsfromHistogramOptionsRaftQuotaPoolPercentUsedhistogramnative histogram fields
An alternative approach using prometheus native histograms directly
(without goodhistogram) is explored in #168352.
Fixes: #168274
Epic: CRDB-52498
Release note: None