Sharding automatique
Introduction au sharding automatique
- Objectif : répartition horizontale des données
- Répartition des données en chunks sur plusieurs serveurs
- Amélioration des performances et de la disponibilité
Fonctionnement du sharding automatique
- Chaque shard stocke une partie des données
- Utilisation de la shard key pour déterminer la répartition des données
- Chaque chunk contient une plage de valeurs de shard key
- Les données sont réparties automatiquement en fonction de la croissance des données
Configuration du sharding automatique
- Configurer les serveurs de configuration (config servers)
- Exemple de commande : mongod --configsvr --dbpath /data/configdb --port 27019
- Configurer les routeurs (mongos)
- Exemple de commande : mongos --configdb configsvr1:27019,configsvr2:27019,configsvr3:27019 --bind_ip localhost --port 27017
- Ajout de shards au cluster
- Exemple de commande : sh.addShard("shard1:27018")
- Activer le sharding pour une base de données et une collection
- Exemple de commande : sh.enableSharding("myDatabase") et sh.shardCollection("myDatabase.myCollection", { "shardKeyField" : 1 })
Avantages et inconvénients du sharding automatique
Avantages :
- Augmentation de la capacité de stockage
- Répartition de la charge de travail entre les shards
- Tolérance aux pannes grâce à la réplication des données
Inconvénients :
- Complexité accrue de la configuration et de l'administration
- Nécessité de choisir une shard key appropriée pour éviter les déséquilibres
- Performances dépendantes de la qualité de la répartition des données et des requêtes