mutex There Are Many Ways To Safely Count A compilation of ways on how to implement a goroutine-safe counter
logical-clocks Getting To Know Logical Clocks By Implementing Them Physical clocks can't capture causality. This blog post discusses two kinds of logical clocks (Lamport Clocks and Vector Clocks), how they are able to capture causality and achieve consensus on the ordering of events, and how to implement them.
cache The Cache is Full Discussion about the cache replacement problem on which cache entry to evict when the cache is full and implementations of four replacement policies FIFO, LRU, CLOCK, and LFU in Go
buffer pool How Buffer Pool Works: An Implementation In Go Exploring how buffer pool management works in databases by building one
mmap But how, exactly, databases use mmap? A saga through BoltDB source code to understand how mmap works in databases
mmap Discovering and exploring mmap using Go Recently I've come to know the concept of memory-mapped files while watching a lecture of the course Intro to Database Systems of Andy Pavlo on database storage. One of the main problems a database storage engine has to solve is how to deal with
software engineering My Thoughts on A Plea for Lean Software A Plea for Lean Software[1] is a classical paper that presents us with some hints of why software increase in complexity and give us some advice on how to avoid or minimize complexity. Here I present my interpretation of Niklaus Wirth's ideas in