Skip to Content
Overview

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

TierWhere it livesOptimized for
HotPostgreSQL heap + native indexesActive data, low-latency reads, transactional writes
ColdOpen 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

  1. Installation — preload, Docker, from source
  2. Getting Started — first managed table
  3. Under the Hood — WAL capture, mirror, merge scan
  4. Manage & Flush — policies and jobs
  5. Change Feedchanges_since / last_rows
  6. SQL API Reference — every shipped function and GUC
  7. Operations — auto-flush, mirror health
  8. Benchmarks — storage and VACUUM wins
  9. Status & Limits — honest beta boundaries

Source and packaging

Last updated on