Skip to content

Instantly share code, notes, and snippets.

@jesusvazquez
Created August 29, 2025 09:45
Show Gist options
  • Save jesusvazquez/11f3942c80c6a11d17249d15b4e395a8 to your computer and use it in GitHub Desktop.
Save jesusvazquez/11f3942c80c6a11d17249d15b4e395a8 to your computer and use it in GitHub Desktop.
blockstore vs parquetstore
❯ benchstat pkg/storegateway/parquetbench/tsdb-5s pkg/storegateway/parquetbench/parquet-5s
goos: darwin
goarch: arm64
pkg: github.com/grafana/mimir/pkg/storegateway/parquetbench
cpu: Apple M2 Pro
│ pkg/storegateway/parquetbench/tsdb-5s │ pkg/storegateway/parquetbench/parquet-5s │
│ sec/op │ sec/op vs base │
BucketStores_Series/SingleMetricAllSeries-12 253.8m ± ∞ ¹ 594.5m ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SingleMetricReducedSeries-12 3.283m ± ∞ ¹ 21.952m ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SingleMetricOneSeries-12 68.34µ ± ∞ ¹ 4328.06µ ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SingleMetricSparseSeries-12 5.430m ± ∞ ¹ 33.800m ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/MultipleMetricsRange-12 1.043 ± ∞ ¹ 1.964 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/MultipleMetricsSparse-12 245.4m ± ∞ ¹ 571.2m ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/NegativeRegexSingleMetric-12 192.2m ± ∞ ¹ 429.4m ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/NegativeRegexMultipleMetrics-12 601.3m ± ∞ ¹ 1340.3m ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/ExpensiveRegexSingleMetric-12 6.463m ± ∞ ¹ 31.675m ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SpecificZoneWithMetricName-12 25.90m ± ∞ ¹ 37.54m ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SpecificZoneNoMetricName-12 130.2m ± ∞ ¹ 199.1m ± ∞ ¹ ~ (p=1.000 n=1) ²
geomean 37.38m 135.9m +263.50%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05
│ pkg/storegateway/parquetbench/tsdb-5s │ pkg/storegateway/parquetbench/parquet-5s │
│ bucket-get-range/op │ bucket-get-range/op vs base │
BucketStores_Series/SingleMetricAllSeries-12 62.00 ± ∞ ¹ 46.00 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SingleMetricReducedSeries-12 3.000 ± ∞ ¹ 44.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SingleMetricOneSeries-12 1.000 ± ∞ ¹ 2.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SingleMetricSparseSeries-12 2.000 ± ∞ ¹ 34.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/MultipleMetricsRange-12 247.0 ± ∞ ¹ 178.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/MultipleMetricsSparse-12 62.00 ± ∞ ¹ 46.00 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/NegativeRegexSingleMetric-12 49.00 ± ∞ ¹ 46.00 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/NegativeRegexMultipleMetrics-12 145.0 ± ∞ ¹ 134.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/ExpensiveRegexSingleMetric-12 4.000 ± ∞ ¹ 44.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SpecificZoneWithMetricName-12 8.000 ± ∞ ¹ 6.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SpecificZoneNoMetricName-12 38.00 ± ∞ ¹ 32.00 ± ∞ ¹ ~ (p=1.000 n=1) ²
geomean 17.57 33.45 +90.40%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05
│ pkg/storegateway/parquetbench/tsdb-5s │ pkg/storegateway/parquetbench/parquet-5s │
│ bucket-get/op │ bucket-get/op vs base │
BucketStores_Series/SingleMetricAllSeries-12 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SingleMetricReducedSeries-12 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SingleMetricOneSeries-12 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SingleMetricSparseSeries-12 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/MultipleMetricsRange-12 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/MultipleMetricsSparse-12 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/NegativeRegexSingleMetric-12 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/NegativeRegexMultipleMetrics-12 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/ExpensiveRegexSingleMetric-12 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SpecificZoneWithMetricName-12 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SpecificZoneNoMetricName-12 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=1) ²
geomean ³ +0.00% ³
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ summaries must be >0 to compute geomean
│ pkg/storegateway/parquetbench/tsdb-5s │ pkg/storegateway/parquetbench/parquet-5s │
│ sec-bucket-wait/op │ sec-bucket-wait/op vs base │
BucketStores_Series/SingleMetricAllSeries-12 1.803m ± ∞ ¹ 1.229m ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SingleMetricReducedSeries-12 75.93µ ± ∞ ¹ 663.59µ ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SingleMetricOneSeries-12 17.69µ ± ∞ ¹ 46.63µ ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SingleMetricSparseSeries-12 78.32µ ± ∞ ¹ 540.72µ ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/MultipleMetricsRange-12 6.709m ± ∞ ¹ 4.197m ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/MultipleMetricsSparse-12 1666.4µ ± ∞ ¹ 975.9µ ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/NegativeRegexSingleMetric-12 1.391m ± ∞ ¹ 1.238m ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/NegativeRegexMultipleMetrics-12 3.974m ± ∞ ¹ 3.675m ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/ExpensiveRegexSingleMetric-12 98.13µ ± ∞ ¹ 677.20µ ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SpecificZoneWithMetricName-12 231.8µ ± ∞ ¹ 196.8µ ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SpecificZoneNoMetricName-12 1126.7µ ± ∞ ¹ 915.8µ ± ∞ ¹ ~ (p=1.000 n=1) ²
geomean 478.4µ 757.0µ +58.23%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05
│ pkg/storegateway/parquetbench/tsdb-5s │ pkg/storegateway/parquetbench/parquet-5s │
│ B/op │ B/op vs base │
BucketStores_Series/SingleMetricAllSeries-12 270.3Mi ± ∞ ¹ 737.9Mi ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SingleMetricReducedSeries-12 2.717Mi ± ∞ ¹ 10.844Mi ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SingleMetricOneSeries-12 19.57Ki ± ∞ ¹ 3279.11Ki ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SingleMetricSparseSeries-12 4.813Mi ± ∞ ¹ 29.822Mi ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/MultipleMetricsRange-12 1.052Gi ± ∞ ¹ 2.813Gi ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/MultipleMetricsSparse-12 270.2Mi ± ∞ ¹ 738.6Mi ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/NegativeRegexSingleMetric-12 211.5Mi ± ∞ ¹ 582.9Mi ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/NegativeRegexMultipleMetrics-12 634.1Mi ± ∞ ¹ 1721.7Mi ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/ExpensiveRegexSingleMetric-12 5.706Mi ± ∞ ¹ 17.856Mi ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SpecificZoneWithMetricName-12 27.81Mi ± ∞ ¹ 96.67Mi ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SpecificZoneNoMetricName-12 138.2Mi ± ∞ ¹ 434.6Mi ± ∞ ¹ ~ (p=1.000 n=1) ²
geomean 33.41Mi 154.8Mi +363.39%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05
│ pkg/storegateway/parquetbench/tsdb-5s │ pkg/storegateway/parquetbench/parquet-5s │
│ allocs/op │ allocs/op vs base │
BucketStores_Series/SingleMetricAllSeries-12 3.316M ± ∞ ¹ 7.804M ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SingleMetricReducedSeries-12 33.45k ± ∞ ¹ 81.08k ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SingleMetricOneSeries-12 277.0 ± ∞ ¹ 1208.0 ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SingleMetricSparseSeries-12 55.55k ± ∞ ¹ 144.85k ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/MultipleMetricsRange-12 13.26M ± ∞ ¹ 31.21M ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/MultipleMetricsSparse-12 3.315M ± ∞ ¹ 7.804M ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/NegativeRegexSingleMetric-12 2.586M ± ∞ ¹ 6.088M ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/NegativeRegexMultipleMetrics-12 7.758M ± ∞ ¹ 18.263M ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/ExpensiveRegexSingleMetric-12 66.68k ± ∞ ¹ 159.34k ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SpecificZoneWithMetricName-12 332.0k ± ∞ ¹ 782.1k ± ∞ ¹ ~ (p=1.000 n=1) ²
BucketStores_Series/SpecificZoneNoMetricName-12 1.659M ± ∞ ¹ 3.906M ± ∞ ¹ ~ (p=1.000 n=1) ²
geomean 410.2k 1.035M +152.33%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment