pg Koldstore
Early development — not production-ready
KoldStore is an open-source PostgreSQL extension for forever-growing app tables. It keeps the active working set in the PostgreSQL heap, moves older rows to compressed Parquet you control, and still lets you query one table with normal SQL.
This is different from pg_kalam: pg_kalam is a foreign-data wrapper that talks to a KalamDB server. KoldStore runs inside your PostgreSQL instance and tiers storage for local heap tables.
What you get
| Tier | Where it lives | Optimized for |
|---|---|---|
| Hot | PostgreSQL heap + native indexes | Active data, low-latency reads, transactional writes |
| Cold | Open Parquet (filesystem, S3/MinIO, GCS, Azure) | History, cost, retention |
Placement is policy-driven (hot_row_limit or age via move_after), not
access-frequency measurement. Reads go through KoldMergeScan so the newest
visible row wins across both tiers. Catch-up clients use
koldstore.changes_since over an exclusive seq cursor.
Good fit today
- Messages and chat history
- AI memory / conversation transcripts
- Audit logs and append-heavy events
- Notifications, activity feeds, IoT telemetry
Not a good fit yet
- Payment ledgers that need global uniqueness across hot and cold
- Workloads that need cold point lookups as fast as a B-tree
- Schema evolution, compaction, and backup/restore that are still hardening
Read this section in order
- Installation — preload, Docker, from source
- Getting Started — first managed table
- Under the Hood — WAL capture, mirror, merge scan
- Manage & Flush — policies and jobs
- Change Feed —
changes_since/last_rows - SQL API Reference — every shipped function and GUC
- Operations — auto-flush, mirror health
- Benchmarks — storage and VACUUM wins
- Status & Limits — honest beta boundaries
Source and packaging
- Repository: github.com/kalamdb/koldstore
- License: Apache 2.0
- PostgreSQL: 15–18 (published Docker image targets PG 16)
- Product page: /koldstore
Last updated on