Instead of considering the record storage as a heap of memory locations, records can be partitioned into shards, which are small enough to be managed by a single server.
Shards are replicated as per requirement and split when it gets too big.
Applications assist in data sharding by assigning each record a partition ID automatically.