prototype: libzstd (gozstd) ZSTD backend behind -tags gozstd - #99
Merged
Conversation
📊 Golden benchmarksNote No statistically significant change. Performance is on par with the base revision.
⏱️ Time —
|
| Benchmark | base | head | Δ | |
|---|---|---|---|---|
write/head |
16.51ms | 16.73ms | +1.3% | ⚪ |
write/flush |
31.40ms | 31.18ms | −0.7% | ⚪ |
write/concurrent |
25.63ms | 24.95ms | −2.6% | ⚪ |
read/fetch_all |
2.70ms | 2.72ms | +0.7% | ⚪ |
read/fetch_all_release |
2.26ms | 2.30ms | +1.8% | ⚪ |
read/fetch_recent |
1.80ms | 1.84ms | +2.3% | ⚪ |
query/promql_count_cpu_cores |
698.35µs | 708.52µs | +1.5% | ⚪ |
query/promql_full_scan_count |
636.89µs | 652.25µs | +2.4% | ⚪ |
query/promql_cpu_usage_range |
2.24ms | 2.20ms | −1.6% | ⚪ |
density |
50.21ms | 50.53ms | +0.6% | ⚪ |
logs/write_flush |
1.70ms | 1.73ms | +1.7% | ⚪ |
logs/merge |
16.43ms | 16.68ms | +1.5% | ⚪ |
| geomean | +0.73% |
🚀 Throughput — B/s (higher is better)
| Benchmark | base | head | Δ | |
|---|---|---|---|---|
write/head |
92.4MiB/s | 91.2MiB/s | −1.3% | ⚪ |
write/flush |
48.6MiB/s | 48.9MiB/s | +0.7% | ⚪ |
write/concurrent |
59.5MiB/s | 61.2MiB/s | +2.7% | ⚪ |
read/fetch_all |
564.6MiB/s | 560.7MiB/s | −0.7% | ⚪ |
read/fetch_all_release |
676.5MiB/s | 664.2MiB/s | −1.8% | ⚪ |
logs/write_flush |
83.2MiB/s | 81.8MiB/s | −1.7% | ⚪ |
logs/merge |
69.0MiB/s | 68.0MiB/s | −1.5% | ⚪ |
| geomean | -0.52% |
🚀 Throughput — Mpoints/s (higher is better)
| Benchmark | base | head | Δ | |
|---|---|---|---|---|
write/head |
7.47 | 7.38 | −1.3% | ⚪ |
write/flush |
3.19 | 3.21 | +0.7% | ⚪ |
write/concurrent |
6.95 | 7.04 | +1.2% | ⚪ |
| geomean | +0.20% |
📦 Bytes per op — B/op (lower is better)
| Benchmark | base | head | Δ | |
|---|---|---|---|---|
write/head |
11.0MiB | 11.0MiB | ≈0% | ⚪ |
write/flush |
47.3MiB | 47.3MiB | ≈0% | ⚪ |
write/concurrent |
69.7MiB | 69.7MiB | ≈0% | ⚪ |
read/fetch_all |
2.3MiB | 2.3MiB | ≈0% | ⚪ |
read/fetch_all_release |
624.0KiB | 624.1KiB | ≈0% | ⚪ |
read/fetch_recent |
778.0KiB | 778.0KiB | ≈0% | ⚪ |
query/promql_count_cpu_cores |
407.3KiB | 407.3KiB | ≈0% | ⚪ |
query/promql_full_scan_count |
399.3KiB | 399.1KiB | ≈0% | ⚪ |
query/promql_cpu_usage_range |
484.5KiB | 484.7KiB | ≈0% | ⚪ |
density |
76.7MiB | 76.7MiB | ≈0% | ⚪ |
logs/write_flush |
1.4MiB | 1.4MiB | −0.1% | ⚪ |
logs/merge |
44.2MiB | 43.1MiB | −2.4% | ⚪ |
| geomean | -0.21% |
♻️ Allocations — allocs/op (lower is better)
| Benchmark | base | head | Δ | |
|---|---|---|---|---|
write/head |
5.9k | 5.9k | ≈0% | ⚪ |
write/flush |
29.5k | 29.5k | ≈0% | ⚪ |
write/concurrent |
10.2k | 10.2k | ≈0% | ⚪ |
read/fetch_all |
4.4k | 4.4k | ≈0% | ⚪ |
read/fetch_all_release |
2.4k | 2.4k | ≈0% | ⚪ |
read/fetch_recent |
4.4k | 4.4k | ≈0% | ⚪ |
query/promql_count_cpu_cores |
1.3k | 1.3k | ≈0% | ⚪ |
query/promql_full_scan_count |
1.3k | 1.3k | ≈0% | ⚪ |
query/promql_cpu_usage_range |
1.7k | 1.7k | ≈0% | ⚪ |
density |
50.1k | 50.1k | ≈0% | ⚪ |
logs/write_flush |
13.0k | 13.0k | ≈0% | ⚪ |
logs/merge |
33.7k | 33.7k | ≈0% | ⚪ |
| geomean | +0.01% |
🔢 Rows per op — rows/op (informational)
| Benchmark | base | head | Δ | |
|---|---|---|---|---|
read/fetch_all |
100.0k | 100.0k | ≈0% | ⚪ |
read/fetch_all_release |
100.0k | 100.0k | ≈0% | ⚪ |
read/fetch_recent |
10.0k | 10.0k | ≈0% | ⚪ |
| geomean | +0.00% |
🗜️ Density — B/point (lower is better)
| Benchmark | base | head | Δ | |
|---|---|---|---|---|
density |
1.498 | 1.498 | ≈0% | ⚪ |
| geomean | +0.00% |
Raw benchstat table
goos: linux
goarch: amd64
pkg: github.com/oteldb/storage
cpu: AMD Ryzen 5 3600 6-Core Processor
│ base.txt │ head.txt │
│ sec/op │ sec/op vs base │
Golden/write/head-12 16.51m ± 3% 16.73m ± 1% ~ (p=0.132 n=6)
Golden/write/flush-12 31.40m ± 2% 31.18m ± 2% ~ (p=0.699 n=6)
Golden/write/concurrent-12 25.63m ± 8% 24.95m ± 7% ~ (p=0.937 n=6)
Golden/read/fetch_all-12 2.703m ± 7% 2.722m ± 4% ~ (p=0.699 n=6)
Golden/read/fetch_all_release-12 2.256m ± 2% 2.297m ± 3% ~ (p=0.132 n=6)
Golden/read/fetch_recent-12 1.803m ± 4% 1.843m ± 2% ~ (p=0.240 n=6)
Golden/query/promql_count_cpu_cores-12 698.3µ ± 2% 708.5µ ± 3% ~ (p=0.132 n=6)
Golden/query/promql_full_scan_count-12 636.9µ ± 3% 652.3µ ± 1% +2.41% (p=0.002 n=6)
Golden/query/promql_cpu_usage_range-12 2.238m ± 1% 2.202m ± 1% -1.59% (p=0.009 n=6)
Golden/density-12 50.21m ± 4% 50.53m ± 2% ~ (p=0.589 n=6)
Golden/logs/write_flush-12 1.704m ± 2% 1.732m ± 1% +1.68% (p=0.004 n=6)
Golden/logs/merge-12 16.43m ± 3% 16.68m ± 6% ~ (p=0.180 n=6)
geomean 4.926m 4.962m +0.73%
│ base.txt │ head.txt │
│ B/s │ B/s vs base │
Golden/write/head-12 92.43Mi ± 3% 91.21Mi ± 1% ~ (p=0.132 n=6)
Golden/write/flush-12 48.60Mi ± 3% 48.95Mi ± 2% ~ (p=0.669 n=6)
Golden/write/concurrent-12 59.55Mi ± 9% 61.16Mi ± 6% ~ (p=0.937 n=6)
Golden/read/fetch_all-12 564.6Mi ± 6% 560.7Mi ± 4% ~ (p=0.699 n=6)
Golden/read/fetch_all_release-12 676.5Mi ± 2% 664.2Mi ± 3% ~ (p=0.132 n=6)
Golden/logs/write_flush-12 83.19Mi ± 2% 81.81Mi ± 1% -1.66% (p=0.004 n=6)
Golden/logs/merge-12 69.01Mi ± 3% 67.97Mi ± 6% ~ (p=0.167 n=6)
geomean 128.8Mi 128.1Mi -0.52%
│ base.txt │ head.txt │
│ Mpoints/s │ Mpoints/s vs base │
Golden/write/head-12 7.471 ± 1% 7.377 ± 1% -1.25% (p=0.015 n=6)
Golden/write/flush-12 3.185 ± 3% 3.208 ± 2% ~ (p=0.699 n=6)
Golden/write/concurrent-12 6.954 ± 13% 7.036 ± 9% ~ (p=0.818 n=6)
geomean 5.490 5.501 +0.20%
│ base.txt │ head.txt │
│ B/op │ B/op vs base │
Golden/write/head-12 10.96Mi ± 10% 10.96Mi ± 10% ~ (p=0.310 n=6)
Golden/write/flush-12 47.34Mi ± 3% 47.34Mi ± 3% ~ (p=1.000 n=6)
Golden/write/concurrent-12 69.68Mi ± 5% 69.68Mi ± 5% ~ (p=0.937 n=6)
Golden/read/fetch_all-12 2.321Mi ± 0% 2.321Mi ± 0% ~ (p=0.418 n=6)
Golden/read/fetch_all_release-12 624.0Ki ± 0% 624.1Ki ± 0% ~ (p=0.216 n=6)
Golden/read/fetch_recent-12 778.0Ki ± 0% 778.0Ki ± 0% ~ (p=0.970 n=6)
Golden/query/promql_count_cpu_cores-12 407.3Ki ± 0% 407.3Ki ± 0% ~ (p=1.000 n=6)
Golden/query/promql_full_scan_count-12 399.3Ki ± 0% 399.1Ki ± 0% ~ (p=0.394 n=6)
Golden/query/promql_cpu_usage_range-12 484.5Ki ± 0% 484.7Ki ± 0% ~ (p=0.699 n=6)
Golden/density-12 76.67Mi ± 0% 76.67Mi ± 0% ~ (p=0.909 n=6)
Golden/logs/write_flush-12 1.365Mi ± 0% 1.364Mi ± 0% -0.09% (p=0.009 n=6)
Golden/logs/merge-12 44.16Mi ± 5% 43.09Mi ± 5% -2.41% (p=0.026 n=6)
geomean 3.920Mi 3.912Mi -0.21%
│ base.txt │ head.txt │
│ allocs/op │ allocs/op vs base │
Golden/write/head-12 5.937k ± 3% 5.938k ± 2% ~ (p=0.732 n=6)
Golden/write/flush-12 29.55k ± 0% 29.55k ± 0% ~ (p=1.000 n=6)
Golden/write/concurrent-12 10.23k ± 7% 10.23k ± 7% ~ (p=0.662 n=6)
Golden/read/fetch_all-12 4.443k ± 0% 4.443k ± 0% ~ (p=1.000 n=6) ¹
Golden/read/fetch_all_release-12 2.443k ± 0% 2.443k ± 0% ~ (p=1.000 n=6) ¹
Golden/read/fetch_recent-12 4.443k ± 0% 4.443k ± 0% ~ (p=1.000 n=6) ¹
Golden/query/promql_count_cpu_cores-12 1.278k ± 0% 1.278k ± 0% ~ (p=0.545 n=6)
Golden/query/promql_full_scan_count-12 1.301k ± 0% 1.301k ± 0% ~ (p=1.000 n=6) ¹
Golden/query/promql_cpu_usage_range-12 1.654k ± 0% 1.655k ± 0% ~ (p=0.545 n=6)
Golden/density-12 50.14k ± 0% 50.14k ± 0% ~ (p=1.000 n=6)
Golden/logs/write_flush-12 12.98k ± 0% 12.98k ± 0% -0.02% (p=0.022 n=6)
Golden/logs/merge-12 33.74k ± 0% 33.74k ± 0% ~ (p=0.056 n=6)
geomean 6.454k 6.454k +0.01%
¹ all samples are equal
│ base.txt │ head.txt │
│ rows/op │ rows/op vs base │
Golden/read/fetch_all-12 100.0k ± 0% 100.0k ± 0% ~ (p=1.000 n=6) ¹
Golden/read/fetch_all_release-12 100.0k ± 0% 100.0k ± 0% ~ (p=1.000 n=6) ¹
Golden/read/fetch_recent-12 10.00k ± 0% 10.00k ± 0% ~ (p=1.000 n=6) ¹
geomean 46.42k 46.42k +0.00%
¹ all samples are equal
│ base.txt │ head.txt │
│ B/point │ B/point vs base │
Golden/density-12 1.498 ± 0% 1.498 ± 0% ~ (p=1.000 n=6) ¹
¹ all samples are equal
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
wisdoms6969
approved these changes
Jul 21, 2026
wisdoms6969
approved these changes
Jul 21, 2026
wisdoms6969
approved these changes
Jul 21, 2026
Contributor
|
Also we can just Instead of gozstd tag. |
Extract the ZSTD encode/decode behind a zstdEncoder/zstdDecoder interface so the backend is build-time selectable: pure-Go klauspost by default (no cgo, static builds), or libzstd via github.com/valyala/gozstd under -tags gozstd. Both emit standard zstd frames, so parts are cross-readable between builds. Prototype for a follow-up to the record cold-recompression work: on a real log-shaped part, gozstd L19 reaches ~7.5 B/row vs klauspost's ~9.1 (a further ~18%, beating ClickHouse), at the cost of cgo and slow high-level encode — hence cold-tier only, and behind a build tag with the native-memory caveats noted. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tdakkota
force-pushed
the
prototype/gozstd-codec
branch
from
August 10, 2026 11:36
dfd2d13 to
04e0f34
Compare
tdakkota
marked this pull request as ready for review
August 10, 2026 11:47
📊 Query engine benchmarks (oteldb)Warning 1 benchmark regressed and 1 improved across the golden set.
⏱️ Time —
|
| Benchmark | base | head | Δ | |
|---|---|---|---|---|
GoldenLogQL/full_scan |
172.82ms | 172.95ms | +0.1% | ⚪ |
GoldenLogQL/select_service |
3.89ms | 3.89ms | −0.1% | ⚪ |
GoldenLogQL/select_multi_stream |
5.22ms | 5.15ms | −1.4% | ⚪ |
GoldenLogQL/select_regexp |
5.15ms | 4.88ms | −5.2% | 🟢 |
GoldenLogQL/line_filter |
4.52ms | 4.42ms | −2.1% | ⚪ |
GoldenLogQL/line_filter_negated |
21.14ms | 20.93ms | −1.0% | ⚪ |
GoldenLogQL/label_filter |
4.01ms | 3.99ms | −0.5% | ⚪ |
GoldenLogQL/json_parser |
27.81ms | 27.46ms | −1.3% | ⚪ |
GoldenLogQL/logfmt_parser |
32.07ms | 31.72ms | −1.1% | ⚪ |
GoldenLogQL/needle |
682.23µs | 665.89µs | −2.4% | ⚪ |
GoldenLogQL/limit_backward |
2.92ms | 2.83ms | −3.0% | ⚪ |
GoldenLogQL/metric_count_by_level |
5.95ms | 6.25ms | +5.1% | 🔴 |
GoldenLogQL/metric_rate_by_service |
86.30ms | 86.05ms | −0.3% | ⚪ |
GoldenProfileQL/select_merge_profile/all_services |
13.92ms | 13.90ms | −0.1% | ⚪ |
GoldenProfileQL/select_merge_profile/single_pod |
1.20ms | 1.20ms | −0.1% | ⚪ |
GoldenProfileQL/select_merge_profile/regex_service |
7.46ms | 7.41ms | −0.7% | ⚪ |
GoldenProfileQL/select_merge_profile/alloc_space |
13.87ms | 13.92ms | +0.4% | ⚪ |
GoldenProfileQL/select_merge_profile/recent_window |
3.63ms | 3.59ms | −1.0% | ⚪ |
GoldenProfileQL/profile_types |
37.37µs | 37.55µs | +0.5% | ⚪ |
GoldenProfileQL/label_names |
43.49µs | 43.68µs | +0.4% | ⚪ |
GoldenProfileQL/label_values/pod |
46.45µs | 46.80µs | +0.8% | ⚪ |
GoldenProfileQL/profile_resolver |
128.05µs | 126.44µs | −1.3% | ⚪ |
GoldenTraceQL/by_trace_id |
784.83µs | 784.12µs | −0.1% | ⚪ |
GoldenTraceQL/scan_all |
11.26ms | 11.22ms | −0.4% | ⚪ |
GoldenTraceQL/by_service |
10.69ms | 10.58ms | −1.0% | ⚪ |
GoldenTraceQL/by_name |
10.03ms | 10.05ms | +0.2% | ⚪ |
GoldenTraceQL/attr_route |
1.41ms | 1.41ms | −0.2% | ⚪ |
GoldenTraceQL/attr_status_code |
2.19ms | 2.22ms | +1.3% | ⚪ |
GoldenTraceQL/status_error |
2.11ms | 2.08ms | −1.7% | ⚪ |
GoldenTraceQL/kind_server |
10.99ms | 11.11ms | +1.1% | ⚪ |
GoldenTraceQL/duration_gt |
10.27ms | 10.21ms | −0.6% | ⚪ |
GoldenTraceQL/attr_and_status |
2.27ms | 2.22ms | −2.6% | ⚪ |
GoldenTraceQL/descendant |
12.36ms | 12.34ms | −0.2% | ⚪ |
GoldenTraceQL/root_name |
12.18ms | 12.13ms | −0.4% | ⚪ |
GoldenTraceQL/root_service_name |
12.02ms | 12.01ms | −0.1% | ⚪ |
GoldenTraceQL/sibling |
11.22ms | 11.18ms | −0.4% | ⚪ |
GoldenTraceQL/child |
11.23ms | 11.38ms | +1.4% | ⚪ |
GoldenTraceQL/pushdown/status_code |
832.89µs | 834.88µs | +0.2% | ⚪ |
GoldenTraceQL/pushdown/kind |
1.51ms | 1.52ms | +0.5% | ⚪ |
GoldenTraceQL/pushdown/name |
954.65µs | 967.37µs | +1.3% | ⚪ |
GoldenTraceQL/pushdown/attr_route |
861.59µs | 864.96µs | +0.4% | ⚪ |
GoldenTraceQL/pushdown/attr_status_code |
861.45µs | 863.35µs | +0.2% | ⚪ |
GoldenTraceQL/pushdown/attr_and_status |
824.83µs | 832.06µs | +0.9% | ⚪ |
| geomean | -0.35% |
🚀 Throughput — B/s (higher is better)
| Benchmark | base | head | Δ | |
|---|---|---|---|---|
GoldenLogQL/full_scan |
44.9MiB/s | 44.9MiB/s | −0.1% | ⚪ |
GoldenLogQL/select_service |
224.5MiB/s | 224.8MiB/s | +0.1% | ⚪ |
GoldenLogQL/select_multi_stream |
816.5MiB/s | 828.3MiB/s | +1.4% | ⚪ |
GoldenLogQL/select_regexp |
678.3MiB/s | 715.5MiB/s | +5.5% | 🟢 |
GoldenLogQL/line_filter |
193.4MiB/s | 197.5MiB/s | +2.1% | ⚪ |
GoldenLogQL/line_filter_negated |
41.3MiB/s | 41.7MiB/s | +1.0% | ⚪ |
GoldenLogQL/label_filter |
217.7MiB/s | 218.8MiB/s | +0.5% | ⚪ |
GoldenLogQL/json_parser |
31.4MiB/s | 31.8MiB/s | +1.3% | ⚪ |
GoldenLogQL/logfmt_parser |
24.0MiB/s | 24.3MiB/s | +1.1% | ⚪ |
GoldenLogQL/needle |
6.10GiB/s | 6.25GiB/s | +2.5% | ⚪ |
GoldenLogQL/limit_backward |
1.43GiB/s | 1.47GiB/s | +3.0% | ⚪ |
GoldenLogQL/metric_count_by_level |
716.8MiB/s | 682.1MiB/s | −4.8% | ⚪ |
GoldenLogQL/metric_rate_by_service |
49.4MiB/s | 49.6MiB/s | +0.3% | ⚪ |
GoldenProfileQL/select_merge_profile/all_services |
35.9MiB/s | 36.0MiB/s | +0.1% | ⚪ |
GoldenProfileQL/select_merge_profile/single_pod |
13.0MiB/s | 13.0MiB/s | +0.1% | ⚪ |
GoldenProfileQL/select_merge_profile/regex_service |
33.5MiB/s | 33.7MiB/s | +0.7% | ⚪ |
GoldenProfileQL/select_merge_profile/alloc_space |
36.1MiB/s | 35.9MiB/s | −0.4% | ⚪ |
GoldenProfileQL/select_merge_profile/recent_window |
34.5MiB/s | 34.8MiB/s | +1.0% | ⚪ |
GoldenTraceQL/by_trace_id |
1.5MiB/s | 1.5MiB/s | ≈0% | ⚪ |
GoldenTraceQL/scan_all |
51.2MiB/s | 51.4MiB/s | +0.4% | ⚪ |
GoldenTraceQL/by_service |
54.0MiB/s | 54.6MiB/s | +1.0% | ⚪ |
GoldenTraceQL/by_name |
57.5MiB/s | 57.4MiB/s | −0.2% | ⚪ |
GoldenTraceQL/attr_route |
407.9MiB/s | 408.8MiB/s | +0.2% | ⚪ |
GoldenTraceQL/attr_status_code |
263.7MiB/s | 260.3MiB/s | −1.3% | ⚪ |
GoldenTraceQL/status_error |
272.8MiB/s | 277.5MiB/s | +1.7% | ⚪ |
GoldenTraceQL/kind_server |
52.5MiB/s | 51.9MiB/s | −1.1% | ⚪ |
GoldenTraceQL/duration_gt |
56.2MiB/s | 56.5MiB/s | +0.6% | ⚪ |
GoldenTraceQL/attr_and_status |
253.7MiB/s | 260.4MiB/s | +2.7% | ⚪ |
GoldenTraceQL/descendant |
46.7MiB/s | 46.7MiB/s | +0.2% | ⚪ |
GoldenTraceQL/root_name |
47.4MiB/s | 47.6MiB/s | +0.4% | ⚪ |
GoldenTraceQL/root_service_name |
48.0MiB/s | 48.1MiB/s | +0.1% | ⚪ |
GoldenTraceQL/sibling |
51.4MiB/s | 51.6MiB/s | +0.4% | ⚪ |
GoldenTraceQL/child |
51.4MiB/s | 50.7MiB/s | −1.3% | ⚪ |
GoldenTraceQL/pushdown/status_code |
692.8MiB/s | 691.1MiB/s | −0.2% | ⚪ |
GoldenTraceQL/pushdown/kind |
381.6MiB/s | 379.6MiB/s | −0.5% | ⚪ |
GoldenTraceQL/pushdown/name |
604.4MiB/s | 596.5MiB/s | −1.3% | ⚪ |
GoldenTraceQL/pushdown/attr_route |
669.7MiB/s | 667.1MiB/s | −0.4% | ⚪ |
GoldenTraceQL/pushdown/attr_status_code |
669.8MiB/s | 668.3MiB/s | −0.2% | ⚪ |
GoldenTraceQL/pushdown/attr_and_status |
699.5MiB/s | 693.5MiB/s | −0.9% | ⚪ |
| geomean | +0.39% |
📦 Bytes per op — B/op (lower is better)
| Benchmark | base | head | Δ | |
|---|---|---|---|---|
GoldenLogQL/full_scan |
131.3MiB | 131.3MiB | ≈0% | ⚪ |
GoldenLogQL/select_service |
6.5MiB | 6.5MiB | +0.1% | ⚪ |
GoldenLogQL/select_multi_stream |
10.2MiB | 10.2MiB | ≈0% | ⚪ |
GoldenLogQL/select_regexp |
9.3MiB | 9.3MiB | ≈0% | ⚪ |
GoldenLogQL/line_filter |
3.8MiB | 3.8MiB | ≈0% | ⚪ |
GoldenLogQL/line_filter_negated |
44.9MiB | 44.9MiB | ≈0% | ⚪ |
GoldenLogQL/label_filter |
3.8MiB | 3.8MiB | ≈0% | ⚪ |
GoldenLogQL/json_parser |
47.3MiB | 47.3MiB | ≈0% | ⚪ |
GoldenLogQL/logfmt_parser |
55.3MiB | 55.3MiB | ≈0% | ⚪ |
GoldenLogQL/needle |
1.1MiB | 1.1MiB | ≈0% | ⚪ |
GoldenLogQL/limit_backward |
9.2MiB | 9.2MiB | +0.2% | ⚪ |
GoldenLogQL/metric_count_by_level |
4.1MiB | 4.1MiB | ≈0% | ⚪ |
GoldenLogQL/metric_rate_by_service |
94.8MiB | 94.8MiB | ≈0% | ⚪ |
GoldenProfileQL/select_merge_profile/all_services |
9.2MiB | 9.2MiB | ≈0% | ⚪ |
GoldenProfileQL/select_merge_profile/single_pod |
1.7MiB | 1.7MiB | −0.1% | ⚪ |
GoldenProfileQL/select_merge_profile/regex_service |
5.3MiB | 5.3MiB | −0.1% | ⚪ |
GoldenProfileQL/select_merge_profile/alloc_space |
9.2MiB | 9.2MiB | ≈0% | ⚪ |
GoldenProfileQL/select_merge_profile/recent_window |
2.5MiB | 2.5MiB | ≈0% | ⚪ |
GoldenProfileQL/profile_types |
21.5KiB | 21.5KiB | ≈0% | ⚪ |
GoldenProfileQL/label_names |
23.1KiB | 23.1KiB | ≈0% | ⚪ |
GoldenProfileQL/label_values/pod |
26.7KiB | 26.7KiB | ≈0% | ⚪ |
GoldenProfileQL/profile_resolver |
181.6KiB | 181.6KiB | ≈0% | ⚪ |
GoldenTraceQL/by_trace_id |
839.9KiB | 840.0KiB | ≈0% | ⚪ |
GoldenTraceQL/scan_all |
17.7MiB | 17.7MiB | ≈0% | ⚪ |
GoldenTraceQL/by_service |
14.6MiB | 14.6MiB | ≈0% | ⚪ |
GoldenTraceQL/by_name |
13.9MiB | 13.9MiB | ≈0% | ⚪ |
GoldenTraceQL/attr_route |
1.5MiB | 1.5MiB | ≈0% | ⚪ |
GoldenTraceQL/attr_status_code |
2.5MiB | 2.5MiB | ≈0% | ⚪ |
GoldenTraceQL/status_error |
2.4MiB | 2.4MiB | ≈0% | ⚪ |
GoldenTraceQL/kind_server |
15.6MiB | 15.6MiB | ≈0% | ⚪ |
GoldenTraceQL/duration_gt |
13.9MiB | 13.9MiB | ≈0% | ⚪ |
GoldenTraceQL/attr_and_status |
2.5MiB | 2.5MiB | ≈0% | ⚪ |
GoldenTraceQL/descendant |
16.4MiB | 16.4MiB | ≈0% | ⚪ |
GoldenTraceQL/root_name |
17.6MiB | 17.6MiB | ≈0% | ⚪ |
GoldenTraceQL/root_service_name |
17.5MiB | 17.5MiB | ≈0% | ⚪ |
GoldenTraceQL/sibling |
14.9MiB | 14.9MiB | ≈0% | ⚪ |
GoldenTraceQL/child |
14.9MiB | 14.9MiB | ≈0% | ⚪ |
GoldenTraceQL/pushdown/status_code |
988.5KiB | 988.4KiB | ≈0% | ⚪ |
GoldenTraceQL/pushdown/kind |
2.5MiB | 2.5MiB | ≈0% | ⚪ |
GoldenTraceQL/pushdown/name |
1.3MiB | 1.3MiB | ≈0% | ⚪ |
GoldenTraceQL/pushdown/attr_route |
950.2KiB | 950.3KiB | ≈0% | ⚪ |
GoldenTraceQL/pushdown/attr_status_code |
984.9KiB | 984.9KiB | ≈0% | ⚪ |
GoldenTraceQL/pushdown/attr_and_status |
915.2KiB | 915.3KiB | ≈0% | ⚪ |
| geomean | +0.00% |
♻️ Allocations — allocs/op (lower is better)
| Benchmark | base | head | Δ | |
|---|---|---|---|---|
GoldenLogQL/full_scan |
1.02M | 1.02M | ≈0% | ⚪ |
GoldenLogQL/select_service |
21.6k | 21.6k | ≈0% | ⚪ |
GoldenLogQL/select_multi_stream |
22.2k | 22.2k | ≈0% | ⚪ |
GoldenLogQL/select_regexp |
22.1k | 22.1k | ≈0% | ⚪ |
GoldenLogQL/line_filter |
20.3k | 20.3k | ≈0% | ⚪ |
GoldenLogQL/line_filter_negated |
111.0k | 111.0k | ≈0% | ⚪ |
GoldenLogQL/label_filter |
23.0k | 23.0k | ≈0% | ⚪ |
GoldenLogQL/json_parser |
182.9k | 182.9k | ≈0% | ⚪ |
GoldenLogQL/logfmt_parser |
185.4k | 185.4k | ≈0% | ⚪ |
GoldenLogQL/needle |
513 | 513 | ≈0% | ⚪ |
GoldenLogQL/limit_backward |
3.1k | 3.1k | ≈0% | ⚪ |
GoldenLogQL/metric_count_by_level |
29.4k | 29.4k | ≈0% | ⚪ |
GoldenLogQL/metric_rate_by_service |
654.6k | 654.6k | ≈0% | ⚪ |
GoldenProfileQL/select_merge_profile/all_services |
157.4k | 157.4k | ≈0% | ⚪ |
GoldenProfileQL/select_merge_profile/single_pod |
6.0k | 6.0k | ≈0% | ⚪ |
GoldenProfileQL/select_merge_profile/regex_service |
79.2k | 79.2k | ≈0% | ⚪ |
GoldenProfileQL/select_merge_profile/alloc_space |
157.4k | 157.4k | ≈0% | ⚪ |
GoldenProfileQL/select_merge_profile/recent_window |
40.5k | 40.5k | ≈0% | ⚪ |
GoldenProfileQL/profile_types |
589 | 589 | ≈0% | ⚪ |
GoldenProfileQL/label_names |
840 | 840 | ≈0% | ⚪ |
GoldenProfileQL/label_values/pod |
847 | 847 | ≈0% | ⚪ |
GoldenProfileQL/profile_resolver |
755 | 755 | ≈0% | ⚪ |
GoldenTraceQL/by_trace_id |
629 | 629 | ≈0% | ⚪ |
GoldenTraceQL/scan_all |
73.3k | 73.3k | ≈0% | ⚪ |
GoldenTraceQL/by_service |
69.1k | 69.1k | ≈0% | ⚪ |
GoldenTraceQL/by_name |
67.2k | 67.2k | ≈0% | ⚪ |
GoldenTraceQL/attr_route |
2.5k | 2.5k | ≈0% | ⚪ |
GoldenTraceQL/attr_status_code |
7.8k | 7.8k | ≈0% | ⚪ |
GoldenTraceQL/status_error |
7.7k | 7.7k | ≈0% | ⚪ |
GoldenTraceQL/kind_server |
70.7k | 70.7k | ≈0% | ⚪ |
GoldenTraceQL/duration_gt |
67.2k | 67.2k | ≈0% | ⚪ |
GoldenTraceQL/attr_and_status |
7.9k | 7.9k | ≈0% | ⚪ |
GoldenTraceQL/descendant |
74.7k | 74.7k | ≈0% | ⚪ |
GoldenTraceQL/root_name |
73.7k | 73.7k | ≈0% | ⚪ |
GoldenTraceQL/root_service_name |
73.6k | 73.6k | ≈0% | ⚪ |
GoldenTraceQL/sibling |
71.8k | 71.8k | ≈0% | ⚪ |
GoldenTraceQL/child |
71.8k | 71.8k | ≈0% | ⚪ |
GoldenTraceQL/pushdown/status_code |
401 | 401 | ≈0% | ⚪ |
GoldenTraceQL/pushdown/kind |
661 | 661 | ≈0% | ⚪ |
GoldenTraceQL/pushdown/name |
419 | 419 | ≈0% | ⚪ |
GoldenTraceQL/pushdown/attr_route |
487 | 487 | ≈0% | ⚪ |
GoldenTraceQL/pushdown/attr_status_code |
401 | 401 | ≈0% | ⚪ |
GoldenTraceQL/pushdown/attr_and_status |
363 | 363 | ≈0% | ⚪ |
| geomean | +0.00% |
Raw benchstat table
goos: linux
goarch: amd64
pkg: github.com/oteldb/oteldb/internal/storagebackend
cpu: AMD Ryzen 5 3600 6-Core Processor
│ base.txt │ head.txt │
│ sec/op │ sec/op vs base │
GoldenLogQL/full_scan-12 172.8m ± 1% 172.9m ± 1% ~ (p=0.579 n=10)
GoldenLogQL/select_service-12 3.890m ± 2% 3.886m ± 2% ~ (p=0.579 n=10)
GoldenLogQL/select_multi_stream-12 5.223m ± 5% 5.148m ± 6% ~ (p=0.218 n=10)
GoldenLogQL/select_regexp-12 5.151m ± 2% 4.883m ± 2% -5.20% (p=0.000 n=10)
GoldenLogQL/line_filter-12 4.516m ± 1% 4.422m ± 1% -2.09% (p=0.000 n=10)
GoldenLogQL/line_filter_negated-12 21.14m ± 3% 20.93m ± 2% ~ (p=0.280 n=10)
GoldenLogQL/label_filter-12 4.012m ± 1% 3.992m ± 1% ~ (p=0.280 n=10)
GoldenLogQL/json_parser-12 27.81m ± 1% 27.46m ± 2% ~ (p=0.063 n=10)
GoldenLogQL/logfmt_parser-12 32.07m ± 1% 31.72m ± 2% ~ (p=0.105 n=10)
GoldenLogQL/needle-12 682.2µ ± 1% 665.9µ ± 1% -2.40% (p=0.000 n=10)
GoldenLogQL/limit_backward-12 2.917m ± 3% 2.831m ± 1% -2.96% (p=0.002 n=10)
GoldenLogQL/metric_count_by_level-12 5.949m ± 1% 6.251m ± 0% +5.09% (p=0.000 n=10)
GoldenLogQL/metric_rate_by_service-12 86.30m ± 1% 86.05m ± 1% ~ (p=0.353 n=10)
GoldenProfileQL/select_merge_profile/all_services-12 13.92m ± 1% 13.90m ± 1% ~ (p=1.000 n=10)
GoldenProfileQL/select_merge_profile/single_pod-12 1.201m ± 4% 1.200m ± 4% ~ (p=0.912 n=10)
GoldenProfileQL/select_merge_profile/regex_service-12 7.463m ± 1% 7.412m ± 1% ~ (p=0.123 n=10)
GoldenProfileQL/select_merge_profile/alloc_space-12 13.87m ± 2% 13.92m ± 1% ~ (p=0.315 n=10)
GoldenProfileQL/select_merge_profile/recent_window-12 3.626m ± 0% 3.591m ± 1% -0.98% (p=0.000 n=10)
GoldenProfileQL/profile_types-12 37.37µ ± 1% 37.55µ ± 1% ~ (p=0.075 n=10)
GoldenProfileQL/label_names-12 43.49µ ± 1% 43.68µ ± 1% ~ (p=0.063 n=10)
GoldenProfileQL/label_values/pod-12 46.45µ ± 1% 46.80µ ± 1% ~ (p=0.072 n=10)
GoldenProfileQL/profile_resolver-12 128.1µ ± 1% 126.4µ ± 2% -1.26% (p=0.043 n=10)
GoldenTraceQL/by_trace_id-12 784.8µ ± 1% 784.1µ ± 1% ~ (p=0.529 n=10)
GoldenTraceQL/scan_all-12 11.26m ± 2% 11.22m ± 2% ~ (p=0.912 n=10)
GoldenTraceQL/by_service-12 10.69m ± 3% 10.58m ± 3% ~ (p=0.393 n=10)
GoldenTraceQL/by_name-12 10.03m ± 1% 10.05m ± 1% ~ (p=0.796 n=10)
GoldenTraceQL/attr_route-12 1.414m ± 1% 1.411m ± 1% ~ (p=0.971 n=10)
GoldenTraceQL/attr_status_code-12 2.188m ± 4% 2.216m ± 1% ~ (p=0.143 n=10)
GoldenTraceQL/status_error-12 2.115m ± 1% 2.080m ± 2% -1.67% (p=0.019 n=10)
GoldenTraceQL/kind_server-12 10.99m ± 2% 11.11m ± 1% +1.07% (p=0.011 n=10)
GoldenTraceQL/duration_gt-12 10.27m ± 1% 10.21m ± 3% ~ (p=0.105 n=10)
GoldenTraceQL/attr_and_status-12 2.274m ± 1% 2.215m ± 2% -2.59% (p=0.002 n=10)
GoldenTraceQL/descendant-12 12.36m ± 3% 12.34m ± 2% ~ (p=0.579 n=10)
GoldenTraceQL/root_name-12 12.18m ± 3% 12.13m ± 2% ~ (p=0.631 n=10)
GoldenTraceQL/root_service_name-12 12.02m ± 2% 12.01m ± 2% ~ (p=0.912 n=10)
GoldenTraceQL/sibling-12 11.22m ± 1% 11.18m ± 1% ~ (p=0.190 n=10)
GoldenTraceQL/child-12 11.23m ± 2% 11.38m ± 2% +1.37% (p=0.043 n=10)
GoldenTraceQL/pushdown/status_code-12 832.9µ ± 2% 834.9µ ± 1% ~ (p=0.280 n=10)
GoldenTraceQL/pushdown/kind-12 1.512m ± 1% 1.520m ± 1% ~ (p=0.796 n=10)
GoldenTraceQL/pushdown/name-12 954.6µ ± 2% 967.4µ ± 1% +1.33% (p=0.015 n=10)
GoldenTraceQL/pushdown/attr_route-12 861.6µ ± 1% 865.0µ ± 1% ~ (p=0.105 n=10)
GoldenTraceQL/pushdown/attr_status_code-12 861.4µ ± 1% 863.3µ ± 1% ~ (p=0.190 n=10)
GoldenTraceQL/pushdown/attr_and_status-12 824.8µ ± 1% 832.1µ ± 1% +0.88% (p=0.004 n=10)
geomean 3.429m 3.417m -0.35%
│ base.txt │ head.txt │
│ B/s │ B/s vs base │
GoldenLogQL/full_scan-12 44.89Mi ± 1% 44.86Mi ± 1% ~ (p=0.541 n=10)
GoldenLogQL/select_service-12 224.5Mi ± 2% 224.8Mi ± 2% ~ (p=0.579 n=10)
GoldenLogQL/select_multi_stream-12 816.5Mi ± 4% 828.3Mi ± 5% ~ (p=0.218 n=10)
GoldenLogQL/select_regexp-12 678.3Mi ± 2% 715.5Mi ± 2% +5.49% (p=0.000 n=10)
GoldenLogQL/line_filter-12 193.4Mi ± 1% 197.5Mi ± 1% +2.13% (p=0.000 n=10)
GoldenLogQL/line_filter_negated-12 41.32Mi ± 3% 41.73Mi ± 2% ~ (p=0.280 n=10)
GoldenLogQL/label_filter-12 217.7Mi ± 1% 218.8Mi ± 1% ~ (p=0.280 n=10)
GoldenLogQL/json_parser-12 31.41Mi ± 1% 31.81Mi ± 2% ~ (p=0.055 n=10)
GoldenLogQL/logfmt_parser-12 24.02Mi ± 1% 24.29Mi ± 2% ~ (p=0.128 n=10)
GoldenLogQL/needle-12 6.104Gi ± 1% 6.254Gi ± 1% +2.45% (p=0.000 n=10)
GoldenLogQL/limit_backward-12 1.428Gi ± 3% 1.471Gi ± 1% +3.04% (p=0.002 n=10)
GoldenLogQL/metric_count_by_level-12 716.8Mi ± 1% 682.1Mi ± 0% -4.84% (p=0.000 n=10)
GoldenLogQL/metric_rate_by_service-12 49.41Mi ± 1% 49.55Mi ± 1% ~ (p=0.342 n=10)
GoldenProfileQL/select_merge_profile/all_services-12 35.92Mi ± 1% 35.96Mi ± 1% ~ (p=0.985 n=10)
GoldenProfileQL/select_merge_profile/single_pod-12 13.01Mi ± 4% 13.02Mi ± 4% ~ (p=0.897 n=10)
GoldenProfileQL/select_merge_profile/regex_service-12 33.50Mi ± 1% 33.73Mi ± 1% ~ (p=0.101 n=10)
GoldenProfileQL/select_merge_profile/alloc_space-12 36.06Mi ± 2% 35.93Mi ± 1% ~ (p=0.289 n=10)
GoldenProfileQL/select_merge_profile/recent_window-12 34.47Mi ± 0% 34.81Mi ± 1% +1.00% (p=0.000 n=10)
GoldenTraceQL/by_trace_id-12 1.469Mi ± 1% 1.469Mi ± 1% ~ (p=0.904 n=10)
GoldenTraceQL/scan_all-12 51.25Mi ± 2% 51.44Mi ± 2% ~ (p=0.912 n=10)
GoldenTraceQL/by_service-12 53.99Mi ± 3% 54.55Mi ± 3% ~ (p=0.382 n=10)
GoldenTraceQL/by_name-12 57.52Mi ± 1% 57.41Mi ± 1% ~ (p=0.813 n=10)
GoldenTraceQL/attr_route-12 407.9Mi ± 1% 408.8Mi ± 1% ~ (p=0.971 n=10)
GoldenTraceQL/attr_status_code-12 263.7Mi ± 4% 260.3Mi ± 1% ~ (p=0.143 n=10)
GoldenTraceQL/status_error-12 272.8Mi ± 1% 277.5Mi ± 2% +1.70% (p=0.019 n=10)
GoldenTraceQL/kind_server-12 52.50Mi ± 2% 51.95Mi ± 1% -1.06% (p=0.011 n=10)
GoldenTraceQL/duration_gt-12 56.16Mi ± 1% 56.50Mi ± 3% ~ (p=0.101 n=10)
GoldenTraceQL/attr_and_status-12 253.7Mi ± 1% 260.4Mi ± 2% +2.66% (p=0.002 n=10)
GoldenTraceQL/descendant-12 46.68Mi ± 3% 46.75Mi ± 2% ~ (p=0.565 n=10)
GoldenTraceQL/root_name-12 47.36Mi ± 3% 47.56Mi ± 2% ~ (p=0.593 n=10)
GoldenTraceQL/root_service_name-12 48.00Mi ± 2% 48.06Mi ± 2% ~ (p=0.912 n=10)
GoldenTraceQL/sibling-12 51.41Mi ± 1% 51.63Mi ± 1% ~ (p=0.190 n=10)
GoldenTraceQL/child-12 51.40Mi ± 2% 50.71Mi ± 2% -1.35% (p=0.041 n=10)
GoldenTraceQL/pushdown/status_code-12 692.8Mi ± 2% 691.1Mi ± 1% ~ (p=0.280 n=10)
GoldenTraceQL/pushdown/kind-12 381.6Mi ± 1% 379.6Mi ± 1% ~ (p=0.781 n=10)
GoldenTraceQL/pushdown/name-12 604.4Mi ± 2% 596.5Mi ± 1% -1.32% (p=0.015 n=10)
GoldenTraceQL/pushdown/attr_route-12 669.7Mi ± 1% 667.1Mi ± 1% ~ (p=0.105 n=10)
GoldenTraceQL/pushdown/attr_status_code-12 669.8Mi ± 1% 668.3Mi ± 1% ~ (p=0.190 n=10)
GoldenTraceQL/pushdown/attr_and_status-12 699.5Mi ± 1% 693.5Mi ± 1% -0.87% (p=0.004 n=10)
geomean 123.1Mi 123.6Mi +0.39%
│ base.txt │ head.txt │
│ B/op │ B/op vs base │
GoldenLogQL/full_scan-12 131.3Mi ± 0% 131.3Mi ± 0% ~ (p=0.105 n=10)
GoldenLogQL/select_service-12 6.523Mi ± 0% 6.530Mi ± 0% ~ (p=0.280 n=10)
GoldenLogQL/select_multi_stream-12 10.16Mi ± 0% 10.16Mi ± 0% ~ (p=1.000 n=10)
GoldenLogQL/select_regexp-12 9.275Mi ± 0% 9.277Mi ± 0% ~ (p=0.739 n=10)
GoldenLogQL/line_filter-12 3.754Mi ± 0% 3.753Mi ± 0% ~ (p=0.436 n=10)
GoldenLogQL/line_filter_negated-12 44.88Mi ± 0% 44.89Mi ± 0% ~ (p=0.123 n=10)
GoldenLogQL/label_filter-12 3.790Mi ± 0% 3.790Mi ± 0% ~ (p=0.853 n=10)
GoldenLogQL/json_parser-12 47.34Mi ± 0% 47.32Mi ± 0% ~ (p=0.436 n=10)
GoldenLogQL/logfmt_parser-12 55.26Mi ± 0% 55.26Mi ± 0% ~ (p=0.971 n=10)
GoldenLogQL/needle-12 1.077Mi ± 0% 1.077Mi ± 0% ~ (p=0.912 n=10)
GoldenLogQL/limit_backward-12 9.184Mi ± 0% 9.200Mi ± 0% ~ (p=0.218 n=10)
GoldenLogQL/metric_count_by_level-12 4.065Mi ± 0% 4.064Mi ± 0% ~ (p=0.436 n=10)
GoldenLogQL/metric_rate_by_service-12 94.82Mi ± 0% 94.82Mi ± 0% ~ (p=0.646 n=10)
GoldenProfileQL/select_merge_profile/all_services-12 9.184Mi ± 0% 9.184Mi ± 0% ~ (p=0.853 n=10)
GoldenProfileQL/select_merge_profile/single_pod-12 1.680Mi ± 0% 1.678Mi ± 0% ~ (p=0.315 n=10)
GoldenProfileQL/select_merge_profile/regex_service-12 5.337Mi ± 0% 5.333Mi ± 0% -0.07% (p=0.029 n=10)
GoldenProfileQL/select_merge_profile/alloc_space-12 9.184Mi ± 0% 9.184Mi ± 0% ~ (p=0.289 n=10)
GoldenProfileQL/select_merge_profile/recent_window-12 2.487Mi ± 0% 2.487Mi ± 0% ~ (p=0.631 n=10)
GoldenProfileQL/profile_types-12 21.52Ki ± 0% 21.52Ki ± 0% ~ (p=1.000 n=10)
GoldenProfileQL/label_names-12 23.14Ki ± 0% 23.14Ki ± 0% ~ (p=1.000 n=10) ¹
GoldenProfileQL/label_values/pod-12 26.73Ki ± 0% 26.73Ki ± 0% ~ (p=1.000 n=10) ¹
GoldenProfileQL/profile_resolver-12 181.6Ki ± 0% 181.6Ki ± 0% ~ (p=1.000 n=10) ¹
GoldenTraceQL/by_trace_id-12 839.9Ki ± 0% 840.0Ki ± 0% ~ (p=0.566 n=10)
GoldenTraceQL/scan_all-12 17.70Mi ± 0% 17.70Mi ± 0% ~ (p=0.481 n=10)
GoldenTraceQL/by_service-12 14.61Mi ± 0% 14.61Mi ± 0% ~ (p=0.353 n=10)
GoldenTraceQL/by_name-12 13.88Mi ± 0% 13.88Mi ± 0% ~ (p=0.247 n=10)
GoldenTraceQL/attr_route-12 1.498Mi ± 0% 1.498Mi ± 0% +0.04% (p=0.004 n=10)
GoldenTraceQL/attr_status_code-12 2.469Mi ± 0% 2.470Mi ± 0% ~ (p=0.190 n=10)
GoldenTraceQL/status_error-12 2.386Mi ± 0% 2.386Mi ± 0% ~ (p=0.190 n=10)
GoldenTraceQL/kind_server-12 15.57Mi ± 0% 15.57Mi ± 0% ~ (p=0.247 n=10)
GoldenTraceQL/duration_gt-12 13.88Mi ± 0% 13.88Mi ± 0% ~ (p=0.436 n=10)
GoldenTraceQL/attr_and_status-12 2.508Mi ± 0% 2.507Mi ± 0% -0.04% (p=0.023 n=10)
GoldenTraceQL/descendant-12 16.40Mi ± 0% 16.40Mi ± 0% ~ (p=0.143 n=10)
GoldenTraceQL/root_name-12 17.63Mi ± 0% 17.63Mi ± 0% ~ (p=0.579 n=10)
GoldenTraceQL/root_service_name-12 17.52Mi ± 0% 17.52Mi ± 0% ~ (p=0.190 n=10)
GoldenTraceQL/sibling-12 14.86Mi ± 0% 14.86Mi ± 0% ~ (p=0.912 n=10)
GoldenTraceQL/child-12 14.89Mi ± 0% 14.89Mi ± 0% ~ (p=0.631 n=10)
GoldenTraceQL/pushdown/status_code-12 988.5Ki ± 0% 988.4Ki ± 0% ~ (p=0.315 n=10)
GoldenTraceQL/pushdown/kind-12 2.466Mi ± 0% 2.466Mi ± 0% +0.01% (p=0.014 n=10)
GoldenTraceQL/pushdown/name-12 1.280Mi ± 0% 1.281Mi ± 0% +0.03% (p=0.023 n=10)
GoldenTraceQL/pushdown/attr_route-12 950.2Ki ± 0% 950.3Ki ± 0% ~ (p=0.481 n=10)
GoldenTraceQL/pushdown/attr_status_code-12 984.9Ki ± 0% 984.9Ki ± 0% ~ (p=0.912 n=10)
GoldenTraceQL/pushdown/attr_and_status-12 915.2Ki ± 0% 915.3Ki ± 0% ~ (p=0.218 n=10)
geomean 4.005Mi 4.005Mi +0.00%
¹ all samples are equal
│ base.txt │ head.txt │
│ allocs/op │ allocs/op vs base │
GoldenLogQL/full_scan-12 1.025M ± 0% 1.025M ± 0% -0.00% (p=0.033 n=10)
GoldenLogQL/select_service-12 21.62k ± 0% 21.62k ± 0% ~ (p=0.262 n=10)
GoldenLogQL/select_multi_stream-12 22.25k ± 0% 22.25k ± 0% ~ (p=0.691 n=10)
GoldenLogQL/select_regexp-12 22.13k ± 0% 22.13k ± 0% ~ (p=0.300 n=10)
GoldenLogQL/line_filter-12 20.26k ± 0% 20.26k ± 0% ~ (p=0.582 n=10)
GoldenLogQL/line_filter_negated-12 111.0k ± 0% 111.0k ± 0% ~ (p=0.149 n=10)
GoldenLogQL/label_filter-12 23.05k ± 0% 23.05k ± 0% ~ (p=1.000 n=10)
GoldenLogQL/json_parser-12 182.9k ± 0% 182.9k ± 0% ~ (p=0.494 n=10)
GoldenLogQL/logfmt_parser-12 185.4k ± 0% 185.4k ± 0% ~ (p=0.871 n=10)
GoldenLogQL/needle-12 513.0 ± 0% 513.0 ± 0% ~ (p=1.000 n=10) ¹
GoldenLogQL/limit_backward-12 3.111k ± 0% 3.113k ± 0% ~ (p=0.259 n=10)
GoldenLogQL/metric_count_by_level-12 29.42k ± 0% 29.42k ± 0% ~ (p=1.000 n=10) ¹
GoldenLogQL/metric_rate_by_service-12 654.6k ± 0% 654.6k ± 0% ~ (p=0.741 n=10)
GoldenProfileQL/select_merge_profile/all_services-12 157.4k ± 0% 157.4k ± 0% ~ (p=0.800 n=10)
GoldenProfileQL/select_merge_profile/single_pod-12 6.043k ± 0% 6.043k ± 0% ~ (p=0.303 n=10)
GoldenProfileQL/select_merge_profile/regex_service-12 79.25k ± 0% 79.25k ± 0% ~ (p=0.122 n=10)
GoldenProfileQL/select_merge_profile/alloc_space-12 157.4k ± 0% 157.4k ± 0% ~ (p=0.541 n=10)
GoldenProfileQL/select_merge_profile/recent_window-12 40.49k ± 0% 40.49k ± 0% ~ (p=0.650 n=10)
GoldenProfileQL/profile_types-12 589.0 ± 0% 589.0 ± 0% ~ (p=1.000 n=10) ¹
GoldenProfileQL/label_names-12 840.0 ± 0% 840.0 ± 0% ~ (p=1.000 n=10) ¹
GoldenProfileQL/label_values/pod-12 847.0 ± 0% 847.0 ± 0% ~ (p=1.000 n=10) ¹
GoldenProfileQL/profile_resolver-12 755.0 ± 0% 755.0 ± 0% ~ (p=1.000 n=10) ¹
GoldenTraceQL/by_trace_id-12 629.0 ± 0% 629.0 ± 0% ~ (p=1.000 n=10) ¹
GoldenTraceQL/scan_all-12 73.26k ± 0% 73.26k ± 0% ~ (p=1.000 n=10)
GoldenTraceQL/by_service-12 69.11k ± 0% 69.11k ± 0% ~ (p=1.000 n=10) ¹
GoldenTraceQL/by_name-12 67.17k ± 0% 67.17k ± 0% ~ (p=1.000 n=10)
GoldenTraceQL/attr_route-12 2.515k ± 0% 2.515k ± 0% ~ (p=1.000 n=10) ¹
GoldenTraceQL/attr_status_code-12 7.819k ± 0% 7.819k ± 0% ~ (p=1.000 n=10)
GoldenTraceQL/status_error-12 7.705k ± 0% 7.705k ± 0% ~ (p=1.000 n=10) ¹
GoldenTraceQL/kind_server-12 70.70k ± 0% 70.70k ± 0% ~ (p=0.628 n=10)
GoldenTraceQL/duration_gt-12 67.20k ± 0% 67.20k ± 0% ~ (p=1.000 n=10)
GoldenTraceQL/attr_and_status-12 7.855k ± 0% 7.855k ± 0% ~ (p=1.000 n=10) ¹
GoldenTraceQL/descendant-12 74.74k ± 0% 74.74k ± 0% ~ (p=0.170 n=10)
GoldenTraceQL/root_name-12 73.67k ± 0% 73.67k ± 0% ~ (p=1.000 n=10)
GoldenTraceQL/root_service_name-12 73.62k ± 0% 73.62k ± 0% ~ (p=0.474 n=10)
GoldenTraceQL/sibling-12 71.84k ± 0% 71.84k ± 0% ~ (p=1.000 n=10) ¹
GoldenTraceQL/child-12 71.85k ± 0% 71.85k ± 0% ~ (p=1.000 n=10) ¹
GoldenTraceQL/pushdown/status_code-12 401.0 ± 0% 401.0 ± 0% ~ (p=1.000 n=10) ¹
GoldenTraceQL/pushdown/kind-12 661.0 ± 0% 661.0 ± 0% ~ (p=1.000 n=10) ¹
GoldenTraceQL/pushdown/name-12 419.0 ± 0% 419.0 ± 0% ~ (p=0.303 n=10)
GoldenTraceQL/pushdown/attr_route-12 487.0 ± 0% 487.0 ± 0% ~ (p=1.000 n=10) ¹
GoldenTraceQL/pushdown/attr_status_code-12 401.0 ± 0% 401.0 ± 0% ~ (p=1.000 n=10) ¹
GoldenTraceQL/pushdown/attr_and_status-12 363.0 ± 0% 363.0 ± 0% ~ (p=1.000 n=10) ¹
geomean 13.25k 13.25k +0.00%
¹ all samples are equal
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft / kept for follow-up to #98 (record cold-recompression).
Extracts the ZSTD encode/decode behind an interface so the backend is build-time selectable:
klauspost/compress(no cgo, static builds, CI/cross-compile).-tags gozstd— libzstd viagithub.com/valyala/gozstd(cgo).Both emit standard zstd frames, so a part written by one build reads on the other.
Why
Measured on a real log-shaped part (300k records): dict + zstd is ~9.1 B/row with klauspost, ~7.5 B/row with gozstd L19 — a further ~18%, beating ClickHouse's 9.1 — but L19 is ~40× slower to encode, so it fits the cold-recompression tier only (#98). libzstd's C contexts are pooled internally but invisible to the Go GC/GOMEMLIMIT, so the backend must not spin up unbounded distinct Compressors.
Not for merge yet — this is the codec plumbing. The wiring (use gozstd L19 as the record cold codec) lands on top of #98.
🤖 Generated with Claude Code