Configurazione di Aurora PostgreSQL per l’inoltro di scrittura locale - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione di Aurora PostgreSQL per l’inoltro di scrittura locale

Le seguenti sezioni descrivono come abilitare l’inoltro di scrittura locale per il cluster di database Amazon Aurora PostgreSQL, come configurare i livelli di coerenza e come gestire le transazioni con l’inoltro di scrittura locale.

Abilitazione dell'inoltro di scrittura locale

Per impostazione predefinita, l’inoltro di scrittura locale non è abilitato per i cluster di database Aurora PostgreSQL. Abilitare l'inoltro di scrittura locale a livello di cluster, non a livello di istanza.

Usando la AWS Management Console, seleziona la casella di controllo Attiva l'inoltro di scrittura locale in Inoltro di scrittura di repliche di lettura quando si crea o si modifica un cluster database.

Per abilitare l’inoltro di scrittura locale con la AWS CLI, utilizzare l’opzione --enable-local-write-forwarding. Questa opzione funziona quando si crea un nuovo cluster database secondario tramite il comando create-db-cluster. Inoltre, funziona quando si modifica un cluster database esistente tramite il comando modify-db-cluster. È possibile disabilitare l’inoltro di scrittura locale mediante l’opzione --no-enable-local-write-forwarding con questi stessi comandi dell’interfaccia della riga di comando.

Nell’esempio seguente viene creato un cluster di database Aurora PostgreSQL con l’inoltro di scrittura locale abilitato.

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

Vengono quindi create istanze database di scrittura e lettura in modo da poter utilizzare l'inoltro di scrittura. Per ulteriori informazioni, consulta Creazione di un cluster database Amazon Aurora.

Per abilitare l’inoltro di scrittura locale con l’API Amazon RDS, impostare il parametro EnableLocalWriteForwarding su true. Questo parametro funziona quando si crea un nuovo cluster database secondario utilizzando l'operazione CreateDBCluster. Funziona anche quando si modifica un cluster database esistente utilizzando l'operazione ModifyDBCluster. È possibile disabilitare l’inoltro di scrittura locale impostando il parametro EnableLocalWriteForwarding su false.

Abilitazione dell’inoltro di scrittura locale per le sessioni di database

Il parametro apg_write_forward.consistency_mode è un parametro database e un parametro del cluster database che abilita l'inoltro di scrittura. È possibile specificare SESSION, EVENTUAL, GLOBAL o OFF per il livello di coerenza di lettura. Per ulteriori informazioni sui livelli di coerenza, consulta Coerenza e isolamento per l’inoltro di scrittura locale in Aurora PostgreSQL.

A questo parametro si applicano le seguenti regole:

  • Il valore predefinito è SESSION.

  • L’inoltro di scrittura locale è disponibile solo se apg_write_forward.consistency_mode è impostato su EVENTUALSESSION o GLOBAL. Questo parametro è rilevante solo nelle istanze di lettura di cluster di database con l’inoltro di scrittura locale abilitato.

  • L’impostazione del valore su OFF disabilita l’inoltro di scrittura locale nella sessione.

Coerenza e isolamento per l’inoltro di scrittura locale in Aurora PostgreSQL

È possibile controllare il grado di coerenza di lettura in una replica di lettura. È possibile regolare il livello di coerenza di lettura per garantire che tutte le operazioni di scrittura inoltrate dalla sessione siano visibili nella replica di lettura prima di qualsiasi query successiva. Inoltre, è possibile utilizzare questa impostazione per garantire che le query sulla replica di lettura visualizzino sempre gli aggiornamenti più recenti dall’istanza database di scrittura. Ciò si verifica anche per quelli inviati da altre sessioni o altri cluster. Per specificare questo tipo di comportamento per l'applicazione, scegli il valore appropriato per il parametro a livello di sessione apg_write_forward.consistency_mode. Il parametro apg_write_forward.consistency_mode ha effetto solo sulle repliche di lettura in cui è abilitato l’inoltro di scrittura locale.

Nota

Per il parametro apg_write_forward.consistency_mode, è possibile specificare i valori SESSION, EVENTUAL, GLOBAL o OFF. Per impostazione predefinita, il valore è impostato su SESSION. L’impostazione del valore su OFF disabilita l’inoltro di scrittura.

Aumentando il livello di coerenza, l’applicazione attende più tempo per la propagazione delle modifiche alle repliche di lettura. È possibile scegliere in che modo bilanciare i tempi di risposta rapidi e la piena disponibilità delle modifiche apportate in altre posizioni prima dell’esecuzione delle query.

Ogni impostazione della modalità di coerenza disponibile, produce un effetto come descritto di seguito:

  • SESSION: una sessione in una replica di lettura che utilizza l’inoltro di scrittura locale vede i risultati di tutte le modifiche apportate a tale sessione. Le modifiche sono visibili indipendentemente dal fatto che la transazione sia stata impegnata. Se necessario, la query attende che i risultati delle operazioni di scrittura inoltrate vengano replicati nell’istanza database di lettura corrente. Non attende i risultati aggiornati delle operazioni di scrittura eseguite in altre sessioni all’interno del cluster di database corrente.

  • EVENTUAL: una sessione in una replica di lettura che utilizza l’inoltro di scrittura locale potrebbe vedere dati leggermente obsoleti a causa del ritardo di replica. I risultati delle operazioni di scrittura nella stessa sessione non sono visibili finché l’operazione di scrittura non viene eseguita sull’istanza database di scrittura e replicata nella replica di lettura. La query non attende la disponibilità dei risultati aggiornati. Pertanto, potrebbe recuperare i dati meno recenti o i dati aggiornati, a seconda della tempistica delle istruzioni e della quantità di ritardo di replica.

  • GLOBAL: una sessione in una replica di lettura vede le modifiche apportate da quella sessione. Vede inoltre tutte le modifiche richieste sia dall’istanza database di scrittura che da altre repliche di lettura. Ogni query potrebbe attendere un periodo che varia a seconda della quantità di ritardo della sessione. La query procede quando la replica di lettura viene aggiornata con tutti i dati richiesti dall’istanza database di scrittura, a partire dall’inizio della query.

    Nota

    La modalità di coerenza globale influisce sulla latenza delle query eseguite all’interno di una sessione, comportando un’attesa anche quando la sessione non ha inviato alcuna query di scrittura.

  • OFF: l’inoltro di scrittura locale è disabilitato.

Nelle sessioni che utilizzano l'inoltro di scrittura, è possibile utilizzare solo i livelli di isolamento REPEATABLE READ e READ COMMITTED. Tuttavia, il livello di isolamento SERIALIZABLE non è supportato.

Per ulteriori informazioni su tutti i parametri coinvolti nell'inoltro di scrittura, consulta Impostazioni predefinite dei parametri per l’inoltro di scrittura.

Modalità di accesso alle transazioni con inoltro di scrittura

Se la modalità di accesso alle transazioni è in sola lettura, l’inoltro di scrittura locale non viene utilizzato. È possibile impostare l’accesso in modalità di sola lettura e scrittura mentre si è connessi a un cluster di database e a una sessione con l’inoltro di scrittura locale abilitato.

Per ulteriori informazioni sulle modalità di accesso alle transazioni, consultare SET TRANSACTION.