BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//HasGeek//NONSGML Funnel//EN
DESCRIPTION:Hands-on workshop going from zero to a working LSM Tree in Go 
 — Rootconf Topical Edition on Databases
X-WR-CALDESC:Hands-on workshop going from zero to a working LSM Tree in Go
  — Rootconf Topical Edition on Databases
NAME:Cascade — build a toy LSM Tree from scratch
X-WR-CALNAME:Cascade — build a toy LSM Tree from scratch
REFRESH-INTERVAL;VALUE=DURATION:PT12H
SUMMARY:Cascade — build a toy LSM Tree from scratch
TIMEZONE-ID:Asia/Kolkata
X-PUBLISHED-TTL:PT12H
X-WR-TIMEZONE:Asia/Kolkata
BEGIN:VEVENT
SUMMARY:Cascade — build a toy LSM Tree from scratch
DTSTART:20260627T083000Z
DTEND:20260627T123000Z
DTSTAMP:20260610T121118Z
UID:session/CxuwUU3exunJk4CYQtQS9b@hasgeek.com
SEQUENCE:7
CREATED:20260608T061136Z
DESCRIPTION:## 🎯 Target audience\n- Engineers with moderate systems pro
 gramming experience who want to understand how LSM Trees work internally 
 — and why they are designed the way they are\n- No prior database intern
 als knowledge required\, but comfort with a systems programming language i
 s expected\n\n## 📘 Workshop overview\nThis workshop goes in depth on ho
 w a Log-Structured Merge Tree works — the storage engine architecture be
 hind RocksDB\, LevelDB\, Cassandra\, and Couchbase. By the end\, you will 
 have written your own LSM Tree in Go that handles writes\, reads\, and del
 etions\; persists data to disk in SSTable format\; and runs a full tiered 
 compaction pass across levels.\n\nThe central tension the workshop explore
 s: what are you paying for reads when writes are relatively cheap? Every d
 esign decision in an LSM Tree is a response to that question. You will fee
 l this tradeoff directly through a read IO counter that tracks how many IO
 s a read requires as data accumulates across levels.\n\n## ✅ Learning ou
 tcomes\nBy the end of the workshop\, participants will be able to understa
 nd:\n- The write-optimised tradeoff at the heart of LSM Trees\, and why it
  exists\n- The on-disk layout of an SSTable and how it is written and read
 \n- Why L0 is unsorted\, and what that costs on the read path\n- How tombs
 tones work and why deletes are non-trivial\n- How reads degrade as SSTable
 s accumulate\, and how compaction recovers them\n- The tiered compaction a
 lgorithm: what it costs in write amplification\, what it saves in implemen
 tation complexity\n- What real systems like LevelDB and RocksDB extend fro
 m this foundation\n\n## 🧩 Workshop stages\n**1. Setup**\nGet the skelet
 on repository running\, understand the testing harness\, and run the first
  milestone tests. Sets the feedback loop for the rest of the workshop.\n\n
 **2. Flush**\nPersist data to disk as an SSTable. Introduce the on-disk fo
 rmat and discuss encoding choices.\n\n**3. L0 Reads**\nImplement reads fro
 m L0. Introduce the read IO counter. See directly what a read costs when d
 ata is scattered across SSTables.\n\n**4. Checkpointing and Recovery**\nHa
 ndle restarts gracefully: checkpoint current state and recover it on start
 up.\n\n**5. Compaction in Isolation**\nUnderstand the compaction algorithm
  as a standalone problem — merging and sorting two SSTable streams\, han
 dling tombstones\, producing a new SSTable.\n\n**6. Tiered Compaction End-
 to-End**\nWire compaction into the engine. Implement a full tiered compact
 ion pass across L0\, L1\, and L2. Observe the reduction in read IOs as com
 paction runs.\n\n## 🛠 Tooling\nGo\, with third-party libraries for the 
 in-memory map and disk encoding. A skeleton repository with sample data\, 
 a load generation harness\, and per-milestone tests will be provided.\n\n#
 # 📚 Further reading\n- O'Neill et al. (1996) — [The Log-Structured Me
 rge-Tree](https://www.cs.umb.edu/~poneil/lsmtree.pdf) — the canonical pa
 per that introduced LSM Trees. Read this after the workshop to see how muc
 h of what you built was already in the original design.\n- [LevelDB source
  code](https://github.com/google/leveldb) — a direct\, readable implemen
 tation of the ideas from the workshop\, and the direct ancestor of RocksDB
 . Every component will look familiar.\n- [RocksDB Wiki: Compaction](https:
 //github.com/facebook/rocksdb/wiki/Compaction) — how a production system
  extends tiered and leveled compaction\, and the operational tradeoffs bet
 ween them.\n\n## About the instructor\n[**Anirudh Rowjee**](https://rowjee
 .com)\, Software Engineer — Storage @ Couchbase. \n\n## How to attend th
 is workshop\nThis workshop is open for **[Rootconf members](https://hasgee
 k.com/rootconf#memberships)** and for **[Rootconf Database Edition ticket 
 buyers](https://hasgeek.com/rootconf/topical-edition-on-databases#tickets)
 **\n\n**This workshop is open to 30 participants (in-person) & hybrid acce
 ss for remote attendees. Seats for in-person participants will be availabl
 e on first-come-first-served basis.** 🎟️    \n\n## Contact informatio
 n ☎️\nFor inquiries about the workshop\, contact +91-7676332020 or wri
 te to [info@hasgeek.com](mailto:info@hasgeek.com).
LAST-MODIFIED:20260608T102908Z
LOCATION:Bangalore - https://hasgeek.com/rootconf/build-a-toy-lsm-tree-fro
 m-scratch-workshop/
ORGANIZER;CN=Rootconf:MAILTO:no-reply@hasgeek.com
URL:https://hasgeek.com/rootconf/build-a-toy-lsm-tree-from-scratch-worksho
 p/
BEGIN:VALARM
ACTION:display
DESCRIPTION:Cascade — build a toy LSM Tree from scratch in 5 minutes
TRIGGER:-PT5M
END:VALARM
END:VEVENT
END:VCALENDAR
