Sharding is the ability to horizontally scale out our database by partitioning our datasets across different servers—the shards. It has been a feature of MongoDB since version 1.6 was released in August, 2010. Foursquare and Bitly are two of MongoDB's most famous early customers, and have used the sharding feature from its inception all the way to its general release.
In this chapter, we will learn the following topics:
- How to design a sharding cluster and how to make the single most important decision concerning its use—choosing the shard key
- Different sharding techniques and how to monitor and administrate sharded clusters
- The mongos router and how it is used to route our queries across different shards
- How we can recover from errors in our shard