Building a Key-Value Database on S3 in Go
How an LSM tree gives us the right building blocks, and where object storage changes the design.
9 articles
How an LSM tree gives us the right building blocks, and where object storage changes the design.
How hierarchical timing wheels expire millions of cache entries efficiently in Go without periodic O(n) scans or a timer per key.
An illustrated tour of Go’s runtime scheduler: operating-system foundations, the G-M-P model, work stealing, preemption, and scheduler traces.
How to use small interfaces, structs, and hand-written test doubles to isolate dependencies and write focused unit tests with Go's standard library.
Why averages and medians hide tail latency, how the 99th percentile exposes it, and how to calculate and interpret p99 with examples in Go.
A concise introduction to CSP through processes, synchronous input and output, guarded commands, and the ideas that shaped Go channels.
A visual guide to Go's memory allocator, from virtual memory and TCMalloc to mspan, mcache, mcentral, mheap, arenas, and object allocation.
A practical guide to Go's named, unnamed, and underlying types, with examples of assignability, conversion, type identity, and compatibility.
A source-level tour of Go channels: hchan, sudog, wait queues, buffered storage, blocking sends and receives, select, and goroutine wake-ups.