very fast at protocol indexer with flexible filtering, xrpc queries, cursor-backed event stream, and more, built on fjall
rust fjall at-protocol atproto indexer

[db] compress L0 for monotonic-key keyspaces master

monotonic {seq}/{id}/{time_us}|{id} keys make every l0 flush disjoint, so lsm-tree leveled compaction trivial-moves segments down without rewriting. the l0 compression+block-size slot is therefore permanent for relay_events, events, and jetstream_events -- with l0=none they were stored uncompressed forever and the l1+ zstd policy was dead code (prod relay: btrfs reclaiming 1.55x on 155/157g of raw relay_events). set l0 compression to zstd:3 and l0 block size to 128kib (matching btrfs's 128k compression window so ratio reaches parity) on the non-ephemeral paths. newest events are still served uncompressed from the memtable; only flushed historical segments (read on cursor replay) pay decompress. also give relay_events its own dict lookup key instead of borrowing the nonexistent 'events' key in relay mode.


+13 -10
1 changed file