Chunk Splits in a Sharded Cluster¶
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
mongos instances will initiate a round of
migrations to redistribute chunks across shards. See
Sharded Collection Balancing for more details on balancing chunks
- Small chunks lead to a more even distribution of data at the
expense of more frequent migrations. This creates expense at the
query routing (
- 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.
- Chunk size affects the
Maximum Number of Documents Per Chunk to Migrate.
For many deployments, it makes sense to avoid frequent and potentially spurious migrations at the expense of a slightly less evenly distributed data set.
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.
Chunk ranges are inclusive of the lower boundary and exclusive of the upper boundary.