During the past few weeks I’ve built a basic key-value store that persists data to disk. It works, but only as a single node, so there is a fixed limit on the amount of data it can store, and the througput it can sustain. We can make the store scale horizontally in two ways: Replication, which keeps additional copies of the data in other nodes, improving throughput. Sharding, which partitions the keys across different nodes, so that we can store more data.| Logos, Thumos & Code
This weekend I decided to add some basic persistence to my Key-Value store. I considered going directly into B-Trees or LSM, but they are quite involved. Moving, forward I want to focus more on the distributed side of the store rather than low level storage details (saving those for later!), so for now I decided to implement something simpler, a basic Write Ahead Log (WAL, for short). What is a Write Ahead Log?| Logos, Thumos & Code