Tag Aware Sharding¶
MongoDB supports tagging a range of shard key values to associate that range with a shard or group of shards. Those shards receive all inserts within the tagged range.
The balancer obeys tagged range associations, which enables the following deployment patterns:
- isolate a specific subset of data on a specific set of shards.
- ensure that the most relevant data reside on shards that are geographically closest to the application servers.
This document describes the behavior, operation, and use of tag aware sharding in MongoDB deployments.
Behavior and Operations¶
The balancer migrates chunks of documents in a sharded collection to the shards associated with a tag that has a shard key range with an upper bound greater than the chunk’s lower bound.
During balancing rounds, if the balancer detects that any chunks violate configured tags, the balancer migrates those chunks to shards associated with those tags.
After configuring a tag with a shard key range and associating it with a shard or shards, the cluster may take some time to balance the data among the shards. This depends on the division of chunks and the current distribution of data in the cluster.
Once configured, the balancer respects tag ranges during future balancing rounds.