Hello there!

I was wondering if anyone (perhaps an early developer or power-user of
Kafka Streams) knows why the Streams developers made the default setting
for RocksDB compaction "Universal" compaction rather than "Level"
compaction?

My understanding (in which I am extremely UNconfident) is as follows—

Supposedly Universal compaction leads to lower write amplification after
compaction finishes. In a run of Universal compaction, all data is
compacted; as per the RocksDB documentation it is possible for temporary
write amplification of up to 2x during this process. There have also been
reports of "write stalls" during this process [1].

In Level compaction, only certain levels (tiers of SST files) are compacted
at once, meaning that the compaction process is shorter and less intensive,
but that write amplification after compaction finishes is higher than with
universal compaction.

Can anyone confirm/deny/correct this?

[1] https://github.com/solana-labs/solana/issues/14586 (not
Streams-related, but it is RocksDB)

Thanks in advance,
Colt McNealy

*Founder, LittleHorse.dev*

Reply via email to