Configuration d'Aurora Postgre SQL pour le transfert d'écriture local - Amazon Aurora

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration d'Aurora Postgre SQL pour le transfert d'écriture local

À l'aide des sections suivantes, vous pouvez activer le transfert d'écriture local pour votre cluster de SQL base de données Amazon Aurora Postgre, configurer les niveaux de cohérence et gérer les transactions avec le transfert d'écriture.

Activation du transfert d'écriture local

Par défaut, le transfert d'écriture local n'est pas activé pour les clusters de SQL base de données Aurora Postgre. Vous activez le transfert d'écriture local au niveau du cluster, et non au niveau de l'instance.

À l'aide de AWS Management Console, cochez la case Activer le transfert d'écriture local sous Lire le transfert d'écriture répliqué lorsque vous créez ou modifiez un cluster de base de données.

Pour activer le transfert d'écriture local avec le AWS CLI, utilisez l'--enable-local-write-forwardingoption. Cette option est utile lorsque vous créez un nouveau cluster de bases de données à l'aide de la commande create-db-cluster. Elle est également utile lorsque vous modifiez un cluster de bases de données existant à l'aide de la commande modify-db-cluster. Vous pouvez désactiver le transfert d'écriture local en utilisant l'--no-enable-local-write-forwardingoption avec ces mêmes CLI commandes.

L'exemple suivant crée un cluster de SQL base de données Aurora Postgre avec le transfert d'écriture local activé.

aws rds create-db-cluster \ --db-cluster-identifier write-forwarding-test-cluster \ --enable-local-write-forwarding \ --engine aurora-postgresql \ --engine-version 16.4 \ --master-username myuser \ --master-user-password mypassword \ --backup-retention 1

Vous créez ensuite des instances de base de données d'enregistreur et de lecteur afin de pouvoir utiliser le transfert d'écriture. Pour de plus amples informations, veuillez consulter Création d'un cluster de base de données Amazon Aurora.

Pour activer le transfert d'écriture local à l'aide d'Amazon RDSAPI, définissez le EnableLocalWriteForwarding paramètre surtrue. Ce paramètre agit lorsque vous créez un nouveau cluster de bases de données à l'aide de l'opération CreateDBCluster. Il agit également lorsque vous modifiez un cluster de bases de données existant à l'aide de l'opération ModifyDBCluster. Vous pouvez désactiver le transfert d'écriture local en définissant le EnableLocalWriteForwarding paramètre surfalse.

Activation du transfert d'écriture local pour les sessions de base de données

Le paramètre apg_write_forward.consistency_mode est un paramètre de base de données et un paramètre de cluster de bases de données qui permet le transfert d'écriture. Vous pouvez spécifierSESSION, EVENTUALGLOBAL, ou OFF pour le niveau de cohérence de lecture. Pour en savoir plus sur les niveaux de cohérence, consultez la section Cohérence et isolation pour le transfert d'écriture local dans Aurora Postgre SQL.

Les règles suivantes s'appliquent à ce paramètre :

  • La valeur par défaut est SESSION.

  • Le transfert d'écriture local n'est disponible que si apg_write_forward.consistency_mode vous définissez sur EVENTUALSESSION, ouGLOBAL. Ce paramètre n'est pertinent que dans les instances de lecteur de clusters de base de données pour lesquelles le transfert d'écriture local est activé.

  • La définition de la valeur sur OFF désactive le transfert d'écriture local dans la session.

Cohérence et isolation pour le transfert d'écriture local dans Aurora Postgre SQL

Vous pouvez contrôler le degré de cohérence de lecture sur une réplique de lecture. Vous pouvez ajuster le niveau de cohérence de lecture pour vous assurer que toutes les opérations d'écriture transférées depuis votre session sont visibles dans la réplique de lecture avant toute requête ultérieure. Vous pouvez également utiliser ce paramètre pour vous assurer que les requêtes sur la réplique en lecture voient toujours les mises à jour les plus récentes provenant de l'instance de base de données Writer. C'est le cas même pour celles soumises par d'autres sessions ou d'autres clusters. Pour spécifier ce type de comportement pour votre application, vous choisissez la valeur appropriée pour le paramètre de niveau session apg_write_forward.consistency_mode. Le apg_write_forward.consistency_mode paramètre n'a d'effet que sur les répliques de lecture pour lesquelles le transfert d'écriture local est activé.

Note

Pour le paramètre apg_write_forward.consistency_mode, vous pouvez spécifier les valeurs SESSION, EVENTUAL, GLOBAL ou OFF. Par défaut, cette valeur indique SESSION. La définition de la valeur sur OFF désactive le transfert d'écriture.

À mesure que vous augmentez le niveau de cohérence, votre application passe plus de temps à attendre que les modifications soient propagées pour lire les répliques. Vous pouvez choisir l'équilibre entre une latence plus faible et la garantie que les modifications apportées dans d'autres emplacements sont entièrement disponibles avant l'exécution de vos requêtes.

Pour chaque paramètre de cohérence disponible, l'effet est le suivant :

  • SESSION— Une session sur une réplique en lecture qui utilise le transfert d'écriture local permet de voir les résultats de toutes les modifications apportées au cours de cette session. Les modifications sont visibles que la transaction soit validée ou non. Si nécessaire, la requête attend que les résultats des opérations d'écriture transmises soient répliqués sur l'instance de base de données du lecteur actuelle. Il n'attend pas les résultats mis à jour des opérations d'écriture effectuées dans d'autres sessions du cluster de base de données actuel.

  • EVENTUAL— Une session sur une réplique en lecture qui utilise le transfert d'écriture local peut afficher des données légèrement périmées en raison du retard de réplication. Les résultats des opérations d'écriture au cours de la même session ne sont pas visibles tant que l'opération d'écriture n'est pas effectuée sur l'instance de base de données du rédacteur et répliquée sur la réplique de lecture. La requête n'attend pas que les résultats mis à jour soient disponibles. Ainsi, elle peut récupérer les données plus anciennes ou les données mises à jour, en fonction de l'heure des instructions et de la durée du décalage de réplication.

  • GLOBAL— Une session sur une réplique en lecture enregistre les modifications apportées par cette session. Il voit également toutes les modifications validées à la fois depuis l'instance de base de données Writer et les autres répliques de lecture. Chaque requête peut attendre pendant une période qui varie en fonction du décalage de la session. La requête se poursuit lorsque la réplique lue contient toutes up-to-date les données validées provenant de l'instance de base de données du rédacteur, au moment où la requête a commencé.

    Note

    Le mode de cohérence globale a un impact sur la latence des requêtes exécutées au cours d'une session. Il effectuera une attente même si la session n'a envoyé aucune requête d'écriture.

  • OFF— Le transfert d'écriture local est désactivé.

Dans les sessions qui utilisent le transfert d'écriture, vous pouvez utiliser les niveaux d'isolement REPEATABLE READ et READ COMMITTED. En revanche, le niveau d'isolement SERIALIZABLE n'est pas pris en charge.

Pour de plus amples informations sur tous les paramètres impliqués dans le transfert d'écriture, veuillez consulter Paramètres par défaut pour le transfert d'écriture.

Modes d'accès aux transactions avec transfert d'écriture

Si le mode d'accès aux transactions est défini sur lecture seule, le transfert d'écriture local n'est pas utilisé. Vous pouvez définir le mode d'accès pour lire et écrire uniquement lorsque vous êtes connecté à un cluster de base de données et à une session pour lesquels le transfert d'écriture local est activé.

Pour plus d'informations sur les modes d'accès aux transactions, consultez SETTRANSACTION.