Summarizing the different implementations of tiered compaction
This is my first attempt to summarize tiered compaction as implemented by RocksDB, Cassandra, ScyllaDB and HBase. I have limited experience with tiered compaction (that will change) and limited knowledge of Cassandra, ScyllaDB and HBase (that won't change soon) so I will make mistakes but enjoy the learning process. To keep this brief I ignore the variants optimizations for time-series and I don't explain compaction basics. Different DBMS use different names for tiered compaction: RocksDB has universal compaction HBase has ExploringCompactionPolicy and RatioBasedCompactionPolicy, see here Cassandra has STCS (Size Tiered Compaction Strategy) ScyllaDB has STCS and ICS (Incremental Compaction Strategy), see here Context The workload matters a lot when considering compaction algorithms. There are many but I list only three below. Note that many real workloads are a mixture of patterns, an example is some overwrites, some inserts. Overwrite-mostly - all of my time in LSM-land has b