Sharding
Sharding (or partioning) can be defined as the process of splitting a table across multiple machines. This is achieved by dividing a table into multiple parts and putting a subset of data on each machine. Sharding a table allows us to store more data and handle more load without scaling vertically (that is, no need for larger and more powerful machines).
Note
If you haven't worked on scaling a database before, you may be confused about the differences between replication and sharding. Replication creates an exact copy of a table on a different server, whereas sharding distributes the table such that each server has a portion of the data of each table.
Sharding a database solves the challenges of scaling to support very large datasets. In fact, sharding reduces the number of operations that each shard handles, resulting in an increased capacity. Additionally, sharding reduces the amount of data that each server needs to store.
One of the benefits of RethinkDB's sharding implementation...