Comprendre les écritures multirégions dans Azure Cosmos DB

S’APPLIQUE À : NoSQL MongoDB Cassandra Gremlin Table

La meilleure façon d’obtenir un temps d’arrêt quasi nul dans un scénario de panne partielle ou totale où la cohérence des lectures n’a pas besoin d’être garantie est de configurer votre compte pour les écritures multirégions. Cet article décrit les concepts clés à connaître lors de la configuration d’un compte d’écriture multirégion.

Région du hub

Dans un compte de base de données d’écriture multirégion avec deux régions ou plus, la première région dans laquelle votre compte a été créé est appelée région « hub ». Toutes les autres régions qui sont ensuite ajoutées au compte sont appelées régions « satellites ». Si la région hub est supprimée du compte, la région suivante, dans l’ordre où elle a été ajoutée, est automatiquement choisie comme région hub.

Toutes les écritures arrivant dans les régions satellites sont commitées par quorum dans la région locale, puis envoyées après cela à la région hub pour la résolution des conflits, de façon asynchrone. Une fois qu’une écriture est envoyée à la région hub et que le conflit est résolu, elle devient une écriture « confirmée ». Avant ce stade, elle est appelée écriture « provisoire » ou écriture « non confirmée ». Une écriture traitée depuis la région hub devient immédiatement une écriture confirmée.

Présentation des horodatages

Une des principales différences dans un compte d’écriture multirégion est la présence de deux valeurs d’horodatage de serveur associées à chaque entité. La première est la date/heure de serveur à laquelle l’entité a été écrite dans cette région. Cet horodatage est disponible dans les comptes d’écriture monorégion et les comptes d’écriture multirégion. La deuxième valeur d’horodatage de serveur est associée à la date/heure à laquelle l’absence de conflit a été confirmée ou à laquelle le conflit a été résolu dans la région hub. Une écriture confirmée ou avec résolution de conflit reçoit un horodatage de résolution de conflit (crts), tandis qu’une écriture non confirmée ou provisoire ne reçoit pas de crts. Deux horodatages dans Cosmos DB sont définis par le serveur. La principale différence est que la configuration de la région du compte est mono-écriture ou multi-écriture.

Horodateur Signification Moment de l’exposition
_ts La date/heure de serveur à laquelle l’entité a été écrite. Toujours exposé par toutes les API de lecture et de requête.
crts Date/heure à laquelle le conflit multi-écriture a été résolu, ou à laquelle l’absence d’un conflit a été confirmée. Pour la configuration de la région multi-écriture, cet horodatage définit l’ordre des modifications pour la sauvegarde continue et le flux de modification :

  • Utilisé pour rechercher la date/heure de début des demandes du flux de modification
  • Utilisé comme ordre de tri dans la réponse du flux de modification.
  • Utilisé pour ordonner les écritures pour la sauvegarde continue
  • La sauvegarde de fichier journal capture seulement les écritures confirmées ou avec résolution du conflit, et par conséquent, le résultat de la restauration d’une sauvegarde continue retourne seulement les écritures confirmées.
Exposé en réponse à des demandes de flux de modification et seulement quand « Nouveau modèle de liaison » est activé par la requête. Il s’agit de la valeur par défaut pour le mode de flux de modification Toutes les versions et les suppressions.

Étapes suivantes

Vous pouvez ensuite lire les articles suivants :