Skip to Content
Benchmarks

Benchmarks

KoldStore is a storage lifecycle tool — not a universal query accelerator. The primary published wins are footprint and whole-table maintenance after flush. DML and cold-path lookups are contextual single samples, not release guarantees.

Source sample: 10M wide rows, hot_row_limit = 100000, local PostgreSQL 16.13, 2026-07-31, single wiped pgrx instance per side (draft publication methodology in the koldstore repo ).

Storage and maintenance wins

ResultBefore → after flushTrade-off
Total footprint (hot + cold)5.85 GiB → 671 MiB89% smaller
Hot in PostgreSQL (heap + __cl)5.85 GiB → 72 MiB99% smaller
Cold Parquet— → ~599 MiBOutside the database
Indexes (hot + __cl)415 MiB → 11.5 MiB97% smaller
VACUUM (FULL, ANALYZE)227.02 s → 3.21 s~71× faster

The VACUUM timing is specifically VACUUM (FULL, ANALYZE) — a whole-table rewrite. Routine autovacuum was disabled for the benchmark and is not covered by that number.

DML and query path (contextual)

Foreground DML and PK lookups are not guaranteed to improve.

OperationPostgreSQL onlyKoldStore (WAL)Notes
INSERT47,202 ops/s101,325 ops/sNoise / order — not a product win
UPDATE63,453 ops/s55,350 ops/sSingle sample; ~13% lower
DELETE36,905 ops/s140,874 ops/sDo not claim faster from one sample
Hot-only PK lookup3,990 ops/s3,818 ops/s≈ same
Hot+cold PK lookup4,204 ops/s1,055 ops/s~75% slower vs full-heap baseline
Cold-only PK lookup4,182 ops/s653 ops/s~84% slower vs full-heap baseline

Cold-path lookups compare Parquet merge against a full-heap PostgreSQL baseline. Treat them as indicative.

How to read the numbers

  • Lead with storage + VACUUM when explaining the product
  • Do not market single-sample INSERT/DELETE “speedups”
  • Expect cold PK latency until cold lookup work lands on the roadmap
  • Results vary by schema, hardware, storage backend, and workload

Product page summary: /koldstore.

Last updated on