Gérer les chunks (scission, fusion, migration)
Comprendre les chunks
- Chunks : unités de répartition des données dans un cluster de shards
- Chaque chunk contient un intervalle continu de valeurs de shard key
- Chaque chunk appartient à un shard unique
- Taille de chunk par défaut : 64 Mo
Processus de scission de chunks
- Scission : division d'un chunk en deux nouveaux chunks plus petits
- Déclenchée lorsque la taille d'un chunk dépasse la taille maximale configurée
- MongoDB 5.0+ surveille la taille des chunks automatiquement
- Commande pour forcer une scission manuelle : sh.splitAt(collection, splitPoint)
Processus de fusion de chunks
- Fusion : combinaison de deux chunks adjacents en un seul chunk
- Peut être utile pour réduire la fragmentation des données
- Commande pour forcer une fusion manuelle : sh.mergeChunks(collection, lowerBound, upperBound)
Migration de chunks
- Migration : transfert d'un chunk d'un shard vers un autre shard
- Permet d'équilibrer la répartition des données et de la charge entre les shards
- Géré automatiquement par le "Balancer" dans MongoDB 5.0+
- Commande pour démarrer une migration manuelle : sh.moveChunk(collection, find, to)
Optimisation de la gestion des chunks
- Surveiller la taille et la répartition des chunks avec sh.status()
- Choisir une shard key appropriée pour minimiser le nombre de migrations et de scissions
- Configurer la taille maximale des chunks si nécessaire avec sh.updateZoneKeyRange(collection, min, max, options)
- Planifier les maintenances de scission et fusion de chunks en dehors des heures de pointe