Partitioning

When one machine can’t hold all your data, or answer all your writes, you cut the data into pieces and give each machine one piece; this lesson is about cutting it without sending all the work to one machine anyway. The story-first cut is Splitting the ledger (sharding); this adds what the board leaves out - splitting a secondary index, what moves when a machine joins, and how a client finds the right one.
Before you start. The previous lesson, replication Replication, put a copy of the whole dataset on every machine, so losing one machine cost you nothing. This lesson starts from a dataset too big, or too busy, for any one machine to hold at all: instead of copying it everywhere, you cut it into pieces and give each machine only its piece.