Independent project / Idea

Distributed Cache

Design notes connecting consistent hashing, bounded LRU storage, membership changes, and observable replication behavior in C++.

C++Consistent hashingReplicationLRU

The question I want to explore

A placement algorithm can tell me which node owns a key. It doesn’t tell me whether that node has the newest value, how eviction affects replicas, or what happens while membership changes. Those interactions are what interest me.

Design direction

I’d begin with an explicit scenario model: a consistent-hash ring, a bounded LRU cache per node, versioned values, and a logical event queue for replication. The same inputs and event order would reproduce the same trace.

I’d keep planned rebalancing separate from sudden failure. Moving a key’s owner and moving its data are different operations, and a useful model should expose the interval between them.

Experiments I’d use

I’d track key movement, cache hits, misses, evictions, and replica lag as nodes join or leave. Tests would cover ring wraparound, late updates, deletes, and recovery after a replica has evicted data.

The existing distributed systems lab is a useful way to explore placement and replication before working through their combined behavior in this design.

Search the notebook

Search articles, projects, and experiments. Everything stays on your device.

palash / notebook

A small doorway into the site. No shell, no remote execution.

Welcome. Type help to find your way around.

lab →experience →contact →Ctrl / Cmd + K