Notes/RollupDB

RollupDB 0.5 Counts Retried Batches Once and Takes Prometheus Remote Write

RollupDB batches can now carry an ID. Send the same batch again after a timeout or a lost response and you get the first result back, marked as replayed, with nothing counted twice; other readings under the same ID are refused. ingest-ndjson --batch-id-prefix uses this so a failed import can simply be run again, and HTTP clients can send an Idempotency-Key header.

rollupdb serve --remote-write map.json now takes Prometheus remote write 1.0 directly, mapping each metric to a stream and its labels to dimensions, and a request Prometheus retries is recognized the same way. Snapshots are written to a hidden file and linked into place only once complete, so a killed one never leaves a half-written backup. The independent review found five problems in two rounds, including a small request that could unpack into gigabytes; all are fixed and tested. Files from 0.4 need one rollupdb migrate. The release post has the details, and the 0.5.0 binaries are on GitHub.