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
| Result | Before → after flush | Trade-off |
|---|---|---|
| Total footprint (hot + cold) | 5.85 GiB → 671 MiB | 89% smaller |
Hot in PostgreSQL (heap + __cl) | 5.85 GiB → 72 MiB | 99% smaller |
| Cold Parquet | — → ~599 MiB | Outside the database |
Indexes (hot + __cl) | 415 MiB → 11.5 MiB | 97% 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.
| Operation | PostgreSQL only | KoldStore (WAL) | Notes |
|---|---|---|---|
| INSERT | 47,202 ops/s | 101,325 ops/s | Noise / order — not a product win |
| UPDATE | 63,453 ops/s | 55,350 ops/s | Single sample; ~13% lower |
| DELETE | 36,905 ops/s | 140,874 ops/s | Do not claim faster from one sample |
| Hot-only PK lookup | 3,990 ops/s | 3,818 ops/s | ≈ same |
| Hot+cold PK lookup | 4,204 ops/s | 1,055 ops/s | ~75% slower vs full-heap baseline |
| Cold-only PK lookup | 4,182 ops/s | 653 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.