Changelog for Oban Met v1.3
View Sourcev1.3.0 — 2026-08-01
Enhancements
[Recorder] Restore :compressed option to series table
The larger
metrics_seriestable is now compressed, while the smallermetrics_latestremains uncompressed because it stays small.[Recorder] Bound compaction with chunking
Prevent overlapping compactions and use a dedicated ETS table for chunked compaction. The resulting peak memory usage is ~61x lower with a relevant sample of ~260k rows.
Compaction Time Peak memory Table before Table after Unbounded 849.7 ms 258.5 MiB 147.1 MiB 143.6 MiB Bounded 806.2 ms 4.2 MiB 147.1 MiB 143.5 MiB [Recorder] Restrict metric handoff to the PG notifier
Handoff passes entire recorded tables between nodes over pubsub. The handoff size can easily be larger than what Postgres can deliver, which the notifier blocks. Rather than silently failing, handoff is restricted to the
PGnotifier.[Recorder] Chunk recorded table handoffs with acking
Recorder handoff copied the entire table in a single payload using
tab2listandterm_to_binary. That spiked memory on both the sender and receiver, using hundreds of MB of memory with larger tables.The sender now streams the table through ETS continuation, sending 5k rows per message awaiting an ack before the next batch. Only one chunk is in flight at a time.
The result is a ~5x smaller overall peak process heap:
elapsed peak process wire legacy full table 645 ms 202.0 MiB 3.53 MiB chunked 5,000 965 ms 39.4 MiB 3.62 MiB round trip 5,000 1817 ms 34.8 MiB 3.62 MiB