Good question.

The separation of compute and storage doesn’t directly address how a database will respond to an increase in storage. What we’re seeing with modern architectures however, is that with the separation of compute and storage, storage is often shared amongst all compute nodes (meaning that each compute node can directly access all of the data in the database).

With this setup, and if the database has been architected properly, the shard rebalancing amongst compute nodes can be done logically, instead of physically (i.e. instead of physically rebalancing the data by moving bytes around on disk, or worse, over the network, the mapping of shard ownership to compute node can be modified without touching the physical bytes on disk).

The end result is that a shard rebalancing can be completed in seconds (or even sub-second) whereas physical rebalancing can take hours or days. Obviously a huge improvement.

Adam has been developing and designing complex software systems for the last two decades. He is also a son, brother, husband and father.

Adam has been developing and designing complex software systems for the last two decades. He is also a son, brother, husband and father.