Sharding: 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.