For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/databases/mongodb-read-preference-and-write-concern.md.

Comprendre readPreference et writeConcern de Public Cloud Databases pour MongoDB

Voir en Markdown

readPreference et writeConcern de MongoDB

Warning

Les paramètres MongoDB tels que readPreference et writeConcern ont des implications sur les performances.

Introduction

MongoDB offre la possibilité de contrôler comment et où les données sont lues et écrites au sein d'un environnement de base de données distribué.

ReadPreference vous permet de spécifier depuis quel membre du replica set (primaire ou secondaire) vos opérations de lecture doivent être servies, en optimisant les performances, la cohérence ou la disponibilité en fonction des besoins de votre application.

Par défaut, la préférence de lecture de MongoDB est configurée pour lire depuis le nœud primaire. Cela garantit la lecture des données les plus récentes. Cependant, en configurant la préférence de lecture sur secondaire, vous pouvez répartir les opérations de lecture entre tous les nœuds secondaires, améliorant ainsi l'évolutivité de la lecture et réduisant la charge sur le nœud primaire. Cela peut améliorer les performances et réduire la latence, en particulier dans les déploiements géographiquement répartis.

WriteConcern définit le niveau d'accusé de réception requis de la base de données lors d'une opération d'écriture, vous permettant d'équilibrer durabilité des données et performance d'écriture. Ensemble, ces paramètres offrent un contrôle flexible et précis sur la cohérence, la disponibilité et la performance des données dans votre déploiement MongoDB.

Le writeConcern de MongoDB vise à offrir une flexibilité dans l'équilibre entre durabilité des données et performance d'écriture. Le writeConcern w=1 signifie que l'opération d'écriture est accusée réception uniquement par le nœud primaire, offrant une latence plus faible et un débit plus élevé, adapté aux cas d'usage où la performance est essentielle et où une perte de données occasionnelle est acceptable. À l'inverse, le writeConcern majority, qui est la valeur par défaut, garantit que l'écriture est accusée réception par la majorité des membres du replica set, offrant une durabilité et une cohérence des données plus élevées, idéal pour les applications où l'intégrité et la fiabilité des données sont primordiales, telles que les transactions financières ou les systèmes de données critiques.

ReadPreference

ReadPreference contrôle la façon dont les clients MongoDB dirigent les opérations de lecture vers les membres d'un replica set. Il détermine quel membre du replica set sera utilisé pour les opérations de lecture. Voici les différents types de ReadPreference :

  1. primary : mode par défaut. Toutes les opérations de lecture sont dirigées vers le nœud primaire.
  2. primaryPreferred : lit depuis le nœud primaire si disponible, sinon depuis les nœuds secondaires.
  3. secondary : toutes les opérations de lecture sont dirigées vers les nœuds secondaires.
  4. secondaryPreferred : lit depuis les nœuds secondaires si disponibles, sinon depuis le nœud primaire.
  5. nearest : lit depuis le membre (primaire ou secondaire) présentant la latence réseau la plus faible.

Configuration via la chaîne de connexion

Vous pouvez spécifier la préférence de lecture dans la chaîne de connexion à l'aide du paramètre readPreference.

Exemple :

mongodb://username:password@host:port/dbname?readPreference=secondary

Configuration pour une opération spécifique

Vous pouvez également définir la préférence de lecture de manière programmatique pour une opération spécifique.

Exemple en Python (PyMongo) :

document = db.collection.find_one({"key": "value"}, read_preference=ReadPreference.NEAREST)

WriteConcern

WriteConcern décrit le niveau d'accusé de réception demandé à MongoDB pour les opérations d'écriture. Il garantit la durabilité et la cohérence des données en spécifiant combien de membres du replica set doivent accuser réception de l'écriture.

Voici les principales options de WriteConcern :

  1. w : spécifie le nombre de membres du replica set devant accuser réception de l'écriture.
    • 0 : aucun accusé de réception.
    • 1 : accusé de réception du nœud primaire uniquement.
    • majority : accusé de réception de la majorité des membres du replica set.
    • Un nombre supérieur à 1 : accusé de réception du nombre de membres spécifié.
  2. wtimeout : spécifie une limite de temps (en millisecondes) pour l'accusé de réception du writeConcern.
  3. j : si la valeur est true, attend que l'opération d'écriture soit validée dans le journal.

Configuration via la chaîne de connexion

Vous pouvez spécifier le writeConcern dans la chaîne de connexion à l'aide des paramètres w, wtimeout et journal.

Exemple :

mongodb://username:password@host:port/dbname?w=majority&wtimeoutMS=5000&journal=true

Configuration pour une opération spécifique

Vous pouvez définir le writeConcern pour des opérations spécifiques plutôt que globalement.

# Specific write operation with WriteConcern
result = db.collection.with_options(write_concern=WriteConcern("majority")).insert_one({"key": "value"})

Nous voulons vos retours !

Nous serions ravis de répondre à vos questions et apprécions tout retour que vous pourriez nous faire.

Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.

Rejoignez notre communauté d'utilisateurs.

Vous êtes sur Discord ? Rejoignez notre chaîne via https://discord.gg/ovhcloud et interagissez directement avec l’équipe qui développe notre service de bases de données !

Cette page vous a-t-elle aidé ?