Aller au contenu

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