jargon

Comparison

Cell-based architecturevsShuffle sharding

Cell-based architecture

customers are divided across eight complete copies of the stack, so a bad deploy or a poison request takes out an eighth of them.

Partitioning the whole system into independent, complete instances and assigning each customer to one. It converts most total outages into partial ones and gives deployments a natural containment unit. The costs are operational multiplication — everything you do, you do eight times — and routing, since something has to map a customer to a cell and that router is now the shared dependency.

Full entry →

Shuffle sharding

each customer is assigned a random pair of workers rather than one, so two customers rarely share both and one bad tenant cannot take out everyone.

Assigning each tenant a random subset of workers, so that any two tenants overlap only partially. With modest numbers it makes the probability of two given tenants sharing an entire subset very small, which means a tenant that poisons its workers damages only a tiny fraction of the others. It is one of the highest-leverage ideas in multi-tenant reliability and it costs essentially nothing but assignment logic.

Full entry →

Related comparisons