<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Sorted Runs</title><description>LSM trees from first principles to production systems: how storage engines work, with diagrams and sources.</description><link>https://blog.renatocron.com/</link><language>en</language><item><title>CockroachDB: Why They Threw Away RocksDB</title><link>https://blog.renatocron.com/why-cockroachdb-replaced-rocksdb-with-pebble/</link><guid isPermaLink="true">https://blog.renatocron.com/why-cockroachdb-replaced-rocksdb-with-pebble/</guid><description>Why CockroachDB replaced RocksDB with Pebble: tombstones that scans must step over, range deletes the compaction picker ignored, and the cgo toll on every call.</description><pubDate>Sun, 04 Oct 2026 00:00:00 GMT</pubDate><category>lsm tree</category><category>pebble</category><category>cockroachdb</category><category>tombstones</category><category>rocksdb</category></item><item><title>RocksDB: the SQLite of Storage Engines</title><link>https://blog.renatocron.com/rocksdb-the-sqlite-of-storage-engines/</link><guid isPermaLink="true">https://blog.renatocron.com/rocksdb-the-sqlite-of-storage-engines/</guid><description>Why RocksDB exists, why writes stall, how to compute its 33x write amplification, what its knobs cost, and how Ribbon filters get close to the theoretical minimum.</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate><category>rocksdb</category><category>lsm tree</category><category>compaction</category><category>write stalls</category><category>bloom filter</category></item><item><title>S3: Millions of Hard Drives, and You Can&apos;t Edit One Byte</title><link>https://blog.renatocron.com/s3-object-storage-for-databases/</link><guid isPermaLink="true">https://blog.renatocron.com/s3-object-storage-for-databases/</guid><description>Why S3 is not a filesystem: ranged reads but no partial writes, what s3fs, Goofys and JuiceFS paid to hide that, and how LSM trees on object storage use it.</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate><category>lsm tree</category><category>s3</category><category>object storage</category><category>slatedb</category><category>turbopuffer</category></item><item><title>Why So Many Database Engines? The RUM Conjecture Explained</title><link>https://blog.renatocron.com/rum-conjecture-why-so-many-database-engines/</link><guid isPermaLink="true">https://blog.renatocron.com/rum-conjecture-why-so-many-database-engines/</guid><description>Why LevelDB, RocksDB, Pebble, Cassandra, ScyllaDB and TigerBeetle all share one LSM tree design yet differ: the RUM Conjecture, leveled vs tiered compaction, Bloom filters.</description><pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate><category>lsm tree</category><category>rum conjecture</category><category>compaction</category><category>bloom filter</category><category>storage engines</category></item><item><title>What Is an LSM Tree? The Data Structure Behind Most Modern Databases</title><link>https://blog.renatocron.com/what-is-an-lsm-tree/</link><guid isPermaLink="true">https://blog.renatocron.com/what-is-an-lsm-tree/</guid><description>How LSM trees turn random writes into sequential ones: MemTable, WAL, sorted runs, the read path, compaction, and the write, read and space amplification triangle.</description><pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate><category>lsm tree</category><category>rocksdb</category><category>compaction</category><category>storage engines</category></item><item><title>What&apos;s Actually Inside Your Database?</title><link>https://blog.renatocron.com/inside-your-database/</link><guid isPermaLink="true">https://blog.renatocron.com/inside-your-database/</guid><description>From punch cards to the B-tree to LSM engines: how databases store data on disk, why B-trees became the default, and what the other family does differently.</description><pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate><category>lsm tree</category><category>b-tree</category><category>storage engines</category><category>database history</category></item></channel></rss>