- Sharding >
- Sharding Concepts >
- Sharding Mechanics >
- Chunk Splits in a Sharded Cluster
Chunk Splits in a Sharded Cluster¶
On this page
As chunks grow beyond the specified chunk size a mongos
instance will attempt to split the
chunk in half. Splits may lead to an uneven distribution of the
chunks for a collection across the shards. In such cases, the
mongos
instances will initiate a round of migrations to
redistribute chunks across shards. See Sharded Collection Balancing
for more details on balancing chunks across shards.
Chunk Size¶
The default chunk size in MongoDB is 64 megabytes. You can increase or reduce the chunk size, mindful of its effect on the cluster’s efficiency.
- Small chunks lead to a more even distribution of data at the
expense of more frequent migrations. This creates expense at the
query routing (
mongos
) layer. - Large chunks lead to fewer migrations. This is more efficient both from the networking perspective and in terms of internal overhead at the query routing layer. But, these efficiencies come at the expense of a potentially more uneven distribution of data.
For many deployments, it makes sense to avoid frequent and potentially spurious migrations at the expense of a slightly less evenly distributed data set.
Limitations¶
Changing the chunk size affects when chunks split but there are some limitations to its effects.
- Automatic splitting only occurs during inserts or updates. If you lower the chunk size, it may take time for all chunks to split to the new size.
- Splits cannot be “undone”. If you increase the chunk size, existing chunks must grow through inserts or updates until they reach the new size.
Note
Chunk ranges are inclusive of the lower boundary and exclusive of the upper boundary.