

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à.

# Inoltro di scrittura locale in Aurora PostgreSQL
<a name="aurora-postgresql-write-forwarding"></a>

 *L'inoltro di scrittura locale (all'interno del cluster)* consente alle applicazioni di eseguire transazioni di lettura/scrittura direttamente su una replica di Aurora. I comandi di scrittura vengono quindi inoltrati all’istanza database di scrittura in attesa che venga eseguito il commit. È possibile utilizzare l’inoltro di scrittura locale per le applicazioni con scritture occasionali e che richiedono la *coerenza lettura dopo scrittura*, ovvero la capacità di leggere l’ultima scrittura in una transazione. 

 Senza inoltro di lettura, le applicazioni devono suddividere completamente tutto il traffico in lettura e in scrittura, mantenendo due gruppi di connessioni al database per inviare il traffico all’endpoint appropriato. Le repliche di lettura ricevono aggiornamenti in modo asincrono dall’istanza di scrittura. Inoltre, poiché il ritardo di replica può variare tra le repliche di lettura, è difficile ottenere una coerenza di lettura globale tra tutte le repliche. È necessario eseguire la transazione delle eventuali letture che richiedono la coerenza lettura dopo scrittura sull’istanza database di scrittura. In alternativa, è necessario sviluppare una complessa logica dell’applicazione personalizzata per sfruttare più repliche di lettura per la scalabilità, garantendo al tempo stesso la coerenza. 

 Con l’inoltro di scrittura, non è necessario suddividere tali transazioni o inviarle esclusivamente all’istanza di scrittura. Inoltre, non è necessario sviluppare una logica dell’applicazione complessa per ottenere la *coerenza lettura dopo scrittura*. 

 L’inoltro di scrittura locale è disponibile in tutte le Regioni in cui è disponibile Aurora PostgreSQL. Questa funzionalità è supportata nelle seguenti versioni Aurora PostgreSQL: 
+ 16.4 e versioni successive
+ 15.8 e versioni successive
+ 14.13 e versioni successive

 L’inoltro di scrittura locale viene utilizzato per inoltrare le scritture da repliche nella Regione. Per inoltrare le scritture da una replica globale, consultare [Utilizzo dell'inoltro di scrittura in un database globale Amazon Aurora](aurora-global-database-write-forwarding.md). 

**Topics**
+ [Limitazioni e considerazioni sull’inoltro di scrittura locale in Aurora PostgreSQL](aurora-postgresql-write-forwarding-limitations.md)
+ [Configurazione di Aurora PostgreSQL per l’inoltro di scrittura locale](aurora-postgresql-write-forwarding-configuring.md)
+ [Utilizzo dell’inoltro di scrittura locale per Aurora PostgreSQL](aurora-postgresql-write-forwarding-understanding.md)
+ [Monitoraggio dell’inoltro di scrittura locale in Aurora PostgreSQL](aurora-postgresql-write-forwarding-monitoring.md)

# Limitazioni e considerazioni sull’inoltro di scrittura locale in Aurora PostgreSQL
<a name="aurora-postgresql-write-forwarding-limitations"></a>

 Al momento, le seguenti limitazioni si applicano all’inoltro di scrittura locale in Aurora PostgreSQL: 
+  L’inoltro di scrittura locale non è supportato con Server proxy per RDS. 
+  Alcune istruzioni non sono consentite o possono produrre risultati non aggiornati quando vengono utilizzate in Aurora PostgreSQL con inoltro di scrittura. Inoltre, le funzioni e le procedure definite dall’utente non sono supportate. Pertanto, l’impostazione `EnableLocalWriteForwarding` è disattivata per impostazione predefinita per i cluster di database. Prima di attivarlo, verificare che il codice dell'applicazione non sia interessato da nessuna di queste restrizioni. 
+  I seguenti tipi di istruzioni SQL non sono supportati con l'inoltro di scrittura: 
**Nota**  
Queste istruzioni possono essere utilizzate implicitamente dall’utente nella propria applicazione o dedotte dal protocollo PostgreSQL. Ad esempio, la gestione delle eccezioni PL/SQL può comportare l’uso di SAVEPOINT, che non è un’istruzione supportata.
  +  `ANALYZE` 
  +  `CLUSTER` 
  +  `COPY` 
  + Cursori: i cursori non sono supportati. Verificare che siano chiusi prima di utilizzare l’inoltro di scrittura locale.
  +  Istruzioni DDL (Data Definition Language) 
  +  `GRANT`\$1`REVOKE`\$1`REASSIGN OWNED`\$1`SECURITY LABEL`
  +  `LISTEN / NOTIFY` 
  +  `LOCK` 
  +  `SAVEPOINT` 
  +  `SELECT INTO` 
  +  `SET CONSTRAINTS` 
  +  Aggiornamenti delle sequenze: `nextval()`, `setval()` 
  +  `TRUNCATE` 
  +  Comandi di commit in due fasi: `PREPARE TRANSACTION`, `COMMIT PREPARED`, `ROLLBACK PREPARED` 
  + Funzioni e procedure definite dall’utente.
  +  `VACUUM` 

 Valutare l’utilizzo dei seguenti tipi di istruzioni SQL con l’inoltro di scrittura: 
+ Un'istruzione DML può essere costituita da più parti, ad esempio un'istruzione `INSERT ... SELECT` o un'istruzione `DELETE ... WHERE`. In questo caso, l'intera istruzione viene inoltrata all'istanza database di scrittura ed eseguita lì.
+ Istruzioni DML (Data Manipulation Language), ad esempio `INSERT`, `DELETE` e `UPDATE`.
+  Istruzioni `EXPLAIN` con le istruzioni in questo elenco.
+  Istruzioni `PREPARE` e `EXECUTE`.
+  Istruzioni `SELECT FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE }`.

# Configurazione di Aurora PostgreSQL per l’inoltro di scrittura locale
<a name="aurora-postgresql-write-forwarding-configuring"></a>

 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
<a name="aurora-postgresql-write-forwarding-enabling"></a>

 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. 

### Console
<a name="aurora-postgresql-write-forwarding-enabling.CON"></a>

 Usando la Console di gestione AWS, 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. 

### AWS CLI
<a name="aurora-postgresql-write-forwarding-enabling.CLI"></a>

 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](Aurora.CreateInstance.md).

### API RDS
<a name="aurora-postgresql-write-forwarding-enabling.API"></a>

 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
<a name="aurora-postgresql-write-forwarding-enabling-session"></a>

 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](#aurora-postgresql-write-forwarding-isolation). 

 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 `EVENTUAL`, `SESSION` 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
<a name="aurora-postgresql-write-forwarding-isolation"></a>

È 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](aurora-postgresql-write-forwarding-understanding.md#aurora-postgresql-write-forwarding-params).

## Modalità di accesso alle transazioni con inoltro di scrittura
<a name="aurora-postgresql-write-forwarding-txns"></a>

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](https://www.postgresql.org/docs/current/sql-set-transaction.html).

# Utilizzo dell’inoltro di scrittura locale per Aurora PostgreSQL
<a name="aurora-postgresql-write-forwarding-understanding"></a>

Le seguenti sezioni spiegano come verificare se in un cluster di database è abilitato l’inoltro di scrittura locale, come visualizzare le considerazioni sulla compatibilità e come vedere i parametri configurabili e l’impostazione dell’autenticazione. Queste informazioni forniscono i dettagli per utilizzare in modo efficace la funzionalità di inoltro di scrittura locale in Aurora PostgreSQL.

**Nota**  
Quando un'istanza di scrittura in un cluster che utilizza l'inoltro di scrittura locale viene riavviata, le eventuali transazioni e query attive, inoltrate sulle istanze di lettura che utilizzano l'inoltro di scrittura locale vengono chiuse automaticamente. Dopo che l'istanza di scrittura sarà nuovamente disponibile, è possibile riprovare a eseguire queste transazioni.

## Verifica dell’abilitazione dell’inoltro di scrittura locale in un cluster di database
<a name="aurora-postgresql-write-forwarding-describing"></a>

Per scoprire se è possibile utilizzare l’inoltro di scrittura locale in un cluster di database, controllare se l’attributo `LocalWriteForwardingStatus` del cluster è impostato su `enabled`.

In Console di gestione AWS, nella scheda **Configurazione** della pagina dei dettagli del cluster, viene visualizzato lo stato **Abilitato** per **Inoltro di scrittura locale di replica di lettura**.

Per visualizzare lo stato dell’impostazione di inoltro di scrittura locale per tutti i cluster, utilizzare il comando seguente dell’AWS CLI.

**Example**  

```
aws rds describe-db-clusters \
--query '*[].{DBClusterIdentifier:DBClusterIdentifier,LocalWriteForwardingStatus:LocalWriteForwardingStatus}'

[
{
"LocalWriteForwardingStatus": "enabled",
"DBClusterIdentifier": "write-forwarding-test-cluster-1"
},
{
"LocalWriteForwardingStatus": "disabled",
"DBClusterIdentifier": "write-forwarding-test-cluster-2"
},
{
"LocalWriteForwardingStatus": "requested",
"DBClusterIdentifier": "test-global-cluster-2"
},
{
"LocalWriteForwardingStatus": "null",
"DBClusterIdentifier": "aurora-postgresql-v2-cluster"
}
]
```

Un cluster database può avere i seguenti valori per `LocalWriteForwardingStatus`:
+ `disabled`: l’inoltro di scrittura locale è disabilitato.
+ `disabling`: l’inoltro di scrittura locale è in fase di disabilitazione.
+ `enabled`: l’inoltro di scrittura locale è abilitato.
+ `enabling`: l’inoltro di scrittura locale è in fase di abilitazione.
+ `null`: l’inoltro di scrittura locale non è disponibile per questo cluster di database.
+ `requested`: l’inoltro di scrittura locale è stato richiesto, ma non è ancora attivo.

## Impostazioni predefinite dei parametri per l’inoltro di scrittura
<a name="aurora-postgresql-write-forwarding-params"></a>

I gruppi di parametri del cluster Aurora contengono delle impostazioni per la funzionalità di inoltro di scrittura locale. Poiché si tratta di parametri cluster, tutte le istanze database in ogni cluster hanno gli stessi valori per queste variabili. I dettagli su questi parametri sono riepilogati nella tabella seguente, con note di utilizzo dopo la tabella.


| Parametro | Ambito | Tipo | Valore predefinito | Valori validi | 
| --- | --- | --- | --- | --- | 
| apg\$1write\$1forward.connect\$1timeout | Sessione | secondi | 30 | 0–2147483647 | 
| apg\$1write\$1forward.consistency\$1mode | Sessione | enum | Sessione | SESSION, EVENTUAL, GLOBAL, e OFF | 
| apg\$1write\$1forward.idle\$1in\$1transaction\$1session\$1timeout | Sessione | millisecondi | 86400000 | 0–2147483647 | 
| apg\$1write\$1forward.idle\$1session\$1timeout | Sessione | millisecondi | 300000 | 0–2147483647 | 
| apg\$1write\$1forward.max\$1forwarding\$1connections\$1percent | Globale | int | 25 | 1-100 | 

Il parametro `apg_write_forward.max_forwarding_connections_percent` rappresenta il limite superiore degli slot di connessione al database che possono essere utilizzati per gestire le query inoltrate dalle istanze di lettura. Viene espresso come percentuale dell’impostazione `max_connections` per l’istanza database di scrittura. Ad esempio, se `max_connections` è `800` e `apg_write_forward.max_forwarding_connections_percent` è `10`, allora l'istanza di scrittura consente un massimo di 80 sessioni inoltrate simultanee. Queste connessioni provengono dallo stesso pool di connessioni gestito dall'impostazione `max_connections`. Questa impostazione si applica solo all’istanza database di scrittura quando l’inoltro di scrittura locale è abilitato nel cluster.

Utilizzare le seguenti impostazioni per controllare le richieste di inoltro di scrittura locale:
+ `apg_write_forward.consistency_mode`: un parametro a livello di sessione che controlla il grado di coerenza di lettura sulla replica di lettura. I valori validi sono `SESSION`, `EVENTUAL`, `GLOBAL` o `OFF`. Per impostazione predefinita, il valore è impostato su `SESSION`. L’impostazione del valore su `OFF` disabilita l’inoltro di scrittura locale nella sessione. Per ulteriori informazioni sui livelli di coerenza, consulta [Coerenza e isolamento per l’inoltro di scrittura locale in Aurora PostgreSQL](aurora-postgresql-write-forwarding-configuring.md#aurora-postgresql-write-forwarding-isolation). Questo parametro è rilevante solo nelle istanze di lettura con l’inoltro di scrittura locale abilitato.
+ `apg_write_forward.connect_timeout`: il numero massimo di secondi di attesa della replica di lettura per stabilire una connessione all’istanza database di scrittura prima di rinunciare. Il valore `0` indica un tempo di attesa infinito.
+ `apg_write_forward.idle_in_transaction_session_timeout`: numero di millisecondi per cui l’istanza database di scrittura resta in attesa di attività su una connessione inoltrata da una replica di lettura con una transazione aperta prima di chiuderla. Se la sessione continua ad avere una transazione inattiva oltre questo periodo, Aurora la chiude. Il valore `0` disabilita il timeout.
+ `apg_write_forward.idle_session_timeout`: numero di millisecondi per cui l’istanza database di scrittura resta in attesa di attività su una connessione inoltrata da una replica di lettura prima di chiuderla. Se la sessione rimane inattiva oltre questo periodo, Aurora la chiude. Il valore `0` disabilita il timeout.

## rdswriteforwarduser
<a name="aurora-postgresql-write-forwarding-rdswriteforwarduser"></a>

 `rdswriteforwarduser` è l’utente utilizzato per stabilire una connessione tra la replica di lettura e l’istanza database di scrittura. 

**Nota**  
`rdswriteforwarduser` eredita i privilegi CONNECT nei database dei clienti tramite il ruolo PUBLIC. Se i privilegi per il ruolo PUBLIC vengono revocati, saranno necessari privilegi GRANT CONNECT per i database a cui inoltrare le scritture. 

# Monitoraggio dell’inoltro di scrittura locale in Aurora PostgreSQL
<a name="aurora-postgresql-write-forwarding-monitoring"></a>

Utilizzando le seguenti sezioni è possibile monitorare l'inoltro di scrittura locale nei cluster Aurora PostgreSQL, incluse le CloudWatch metriche pertinenti e gli eventi di attesa per tenere traccia delle prestazioni e identificare potenziali problemi.

## CloudWatch Parametri Amazon e variabili di stato Aurora PostgreSQL per l'inoltro di scrittura
<a name="aurora-postgresql-write-forwarding-cloudwatch"></a>

 I seguenti CloudWatch parametri di Amazon si applicano alle istanze Writer DB quando utilizzi l'inoltro di scrittura su una o più repliche di lettura.


| CloudWatch Parametro | Unità e descrizione | 
| --- | --- | 
| `AuroraLocalForwardingWriterDMLThroughput`  | Conteggio (al secondo) Numero di istruzioni DML inoltrate elaborate ogni secondo da questa istanza database writer. | 
|  `AuroraLocalForwardingWriterOpenSessions`  | Conteggio Numero di sessioni aperte su questa istanza DB di scrittura che elabora le query inoltrate. | 
|  `AuroraLocalForwardingWriterTotalSessions`  | Conteggio Numero totale di sessioni inoltrate sull'istanza database di scrittura. | 

 Le seguenti CloudWatch metriche si applicano a ciascuna replica di lettura. Queste metriche vengono misurate su ogni istanza database di lettura nel cluster di database con l’inoltro di scrittura locale abilitato. 


| CloudWatch Parametro | Unità e descrizione | 
| --- | --- | 
|  `AuroraForwardingReplicaCommitThroughput` |  Conteggio (al secondo) Numero di commit in sessioni inoltrate da questa replica ogni secondo.  | 
|  `AuroraForwardingReplicaDMLLatency` |  Millisecondi Tempo di risposta medio in millisecondi di inoltro sulla replica. DMLs  | 
|  `AuroraForwardingReplicaDMLThroughput` |  Conteggio (al secondo) Numero di istruzioni DML inoltrate sulla replica elaborate ogni secondo.  | 
|  `AuroraForwardingReplicaErrorSessionsLimit` |  Conteggio Numero di sessioni rifiutate dall’istanza database di scrittura quando viene raggiunto il limite massimo di connessioni o di connessioni create per l’inoltro di scrittura.  | 
|  `AuroraForwardingReplicaOpenSessions`  |  Conteggio Il numero di sessioni che utilizzano l’inoltro di scrittura locale su un’istanza di replica.  | 
|  `AuroraForwardingReplicaReadWaitLatency` | Millisecondi Tempo medio di attesa in millisecondi della replica per garantire la coerenza con l’LSN dell’istanza database di scrittura. Il grado di attesa dell'istanza database in lettura dipende dall'impostazione apg\$1write\$1forward.consistency\$1mode. Per ulteriori informazioni su questa impostazione, consulta [Parametri di configurazione per l'inoltro di scrittura in Aurora PostgreSQL](aurora-global-database-write-forwarding-apg.md#aurora-global-database-write-forwarding-params-apg).  | 

## Eventi di attesa per l’inoltro di scrittura locale in Aurora PostgreSQL
<a name="aurora-postgresql-write-forwarding-wait-events-apg"></a>

Amazon Aurora genera i seguenti eventi di attesa quando si utilizza l'inoltro di scrittura con Aurora PostgreSQL.

**Topics**
+ [IPC: AuroraWriteForwardConnect](#apg-waits.ipcaurorawriteforwardconnect)
+ [IPC: AuroraWriteForwardConsistencyPoint](#apg-waits.ipcaurorawriteforwardconsistencypoint)
+ [IPC: AuroraWriteForwardExecute](#apg-waits.ipc:aurorawriteforwardexecute)
+ [IPC: AuroraWriteForwardGetGlobalConsistencyPoint](#apg-waits.ipc:aurorawriteforwardgetglobalconsistencypoint)
+ [IPC: AuroraWriteForwardXactAbort](#apg-waits.ipc:aurorawriteforwardxactabort)
+ [IPC: AuroraWriteForwardXactCommit](#apg-waits.ipc:aurorawriteforwardxactcommit)
+ [IPC: AuroraWriteForwardXactStart](#apg-waits.ipc:aurorawriteforwardxactstart)

### IPC: AuroraWriteForwardConnect
<a name="apg-waits.ipcaurorawriteforwardconnect"></a>

L’evento `IPC:AuroraWriteForwardConnect` si verifica quando un processo di backend sulla replica di lettura è in attesa dell’apertura di una connessione all’istanza database di scrittura.

**Probabili cause di aumento delle attese**

Questo evento diventa più frequente all’aumentare del numero dei tentativi di connessione da una replica di lettura al nodo di scrittura.

**Azioni**

Ridurre il numero di connessioni simultanee da una replica di lettura al nodo di scrittura.

### IPC: AuroraWriteForwardConsistencyPoint
<a name="apg-waits.ipcaurorawriteforwardconsistencypoint"></a>

L’evento `IPC:AuroraWriteForwardConsistencyPoint` descrive il tempo di attesa di una query generata da un nodo sulla replica di lettura affinché i risultati delle operazioni di scrittura inoltrate vengano replicati nella Regione attuale. Questo evento viene generato solo se il parametro `apg_write_forward.consistency_mode` a livello di sessione è impostato su uno dei seguenti:
+ `SESSION`: le query su una replica di lettura attendono i risultati di tutte le modifiche apportate in quella sessione.
+ `GLOBAL`: le query su una replica di lettura attendono i risultati delle modifiche apportate da quella sessione, oltre a tutte le modifiche richieste dall’istanza database di scrittura e dalla replica di lettura.

Per ulteriori informazioni sull'impostazione del parametro `apg_write_forward.consistency_mode`, consulta [Parametri di configurazione per l'inoltro di scrittura in Aurora PostgreSQL](aurora-global-database-write-forwarding-apg.md#aurora-global-database-write-forwarding-params-apg).

**Probabili cause di aumento delle attese**

Alcune cause comuni dei tempi di attesa più lunghi sono:
+ Aumento del ritardo di replica, misurato dalla metrica di Amazon CloudWatch `ReplicaLag`. Per ulteriori informazioni su questa metrica, consulta [Monitoraggio della replica Aurora PostgreSQL.](AuroraPostgreSQL.Replication.md#AuroraPostgreSQL.Replication.Monitoring).
+ Un carico maggiore sull’istanza database di scrittura o sulla replica di lettura.

**Azioni**

Modifica la modalità di coerenza in base ai requisiti dell'applicazione.

### IPC: AuroraWriteForwardExecute
<a name="apg-waits.ipc:aurorawriteforwardexecute"></a>

L’evento `IPC:AuroraWriteForwardExecute` si verifica quando un processo di backend su una replica di lettura attende il completamento di una query inoltrata e la ricezione dei risultati dal nodo di scrittura del cluster di database.

**Probabili cause di aumento delle attese**

Alcune cause comuni dell'aumento dei tempi di attesa sono:
+ Il recupero di un numero elevato di righe dal nodo di scrittura.
+ Una maggiore latenza di rete tra il nodo di scrittura e la replica di lettura aumenta il tempo necessario alla replica di lettura per ricevere i dati del nodo di scrittura.
+ Un carico maggiore sulla replica di lettura può ritardare la trasmissione della richiesta di query dalla replica di lettura al nodo di scrittura.
+ Un carico maggiore sul nodo di scrittura può ritardare la trasmissione dei dati dal nodo di scrittura alla replica di lettura.

**Azioni**

Consigliamo azioni diverse a seconda delle cause dell’evento di attesa.
+ Ottimizza le query per recuperare solo i dati necessari.
+ Ottimizza le operazioni DML (Data Manipulation Language) per modificare solo i dati necessari.
+ Se la replica di lettura o il nodo di scrittura sono limitati dalla CPU o dalla larghezza di banda della rete, valutare la possibilità di passare a un tipo di istanza con maggiore capacità di CPU o maggiore larghezza di banda della rete.

### IPC: AuroraWriteForwardGetGlobalConsistencyPoint
<a name="apg-waits.ipc:aurorawriteforwardgetglobalconsistencypoint"></a>

L’evento `IPC:AuroraWriteForwardGetGlobalConsistencyPoint` si verifica quando un processo di backend sulla replica di lettura che utilizza la modalità di coerenza GLOBAL è in attesa di ottenere il punto di coerenza globale dal nodo di scrittura prima di eseguire una query.

**Probabili cause di aumento delle attese**

Alcune cause comuni dell'aumento dei tempi di attesa sono:
+ Una maggiore latenza di rete tra la replica di lettura e il nodo di scrittura aumenta il tempo necessario alla replica di lettura per ricevere i dati del nodo di scrittura.
+ Un carico maggiore sulla replica di lettura può ritardare la trasmissione della richiesta di query dalla replica di lettura al nodo di scrittura.
+ Un carico maggiore sul nodo di scrittura può ritardare la trasmissione dei dati dal nodo di scrittura alla replica di lettura.

**Azioni**

Consigliamo azioni diverse a seconda delle cause dell’evento di attesa.
+ Modifica la modalità di coerenza in base ai requisiti dell'applicazione.
+ Se la replica di lettura o il nodo di scrittura sono limitati dalla CPU o dalla larghezza di banda della rete, valutare la possibilità di passare a un tipo di istanza con maggiore capacità di CPU o maggiore larghezza di banda della rete.

### IPC: AuroraWriteForwardXactAbort
<a name="apg-waits.ipc:aurorawriteforwardxactabort"></a>

L’evento `IPC:AuroraWriteForwardXactAbort` si verifica quando un processo di backend sulla replica di lettura è in attesa del risultato di una query di pulizia remota. Le query di pulizia vengono emesse per riportare il processo allo stato ottimale dopo l'interruzione di una transazione di scrittura inoltrata. Amazon Aurora le esegue perché è stato rilevato un errore o perché un utente ha chiamato un comando `ABORT` esplicito o ha annullato una query in esecuzione.

**Probabili cause di aumento delle attese**

Alcune cause comuni dell'aumento dei tempi di attesa sono:
+ Una maggiore latenza di rete tra la replica di lettura e il nodo di scrittura aumenta il tempo necessario alla replica di lettura per ricevere i dati del nodo di scrittura.
+ Un carico maggiore sulla replica di lettura può ritardare la trasmissione della richiesta di query di pulizia dalla replica di lettura al nodo di scrittura.
+ Un carico maggiore sul nodo di scrittura può ritardare la trasmissione dei dati dal nodo di scrittura alla replica di lettura.

**Azioni**

Consigliamo azioni diverse a seconda delle cause dell’evento di attesa.
+ Indaga la causa della transazione interrotta.
+ Se la replica di lettura o l’istanza database di scrittura sono limitate dalla CPU o dalla larghezza di banda della rete, valutare la possibilità di passare a un tipo di istanza con maggiore capacità di CPU o maggiore larghezza di banda della rete.

### IPC: AuroraWriteForwardXactCommit
<a name="apg-waits.ipc:aurorawriteforwardxactcommit"></a>

L’evento `IPC:AuroraWriteForwardXactCommit` si verifica quando un processo di backend sulla replica di lettura è in attesa del risultato di un comando di transazione di commit inoltrato.

**Probabili cause di aumento delle attese**

Alcune cause comuni dell'aumento dei tempi di attesa sono:
+ Una maggiore latenza di rete tra la replica di lettura e il nodo di scrittura aumenta il tempo necessario alla replica di lettura per ricevere i dati del nodo di scrittura.
+ Un carico maggiore sulla replica di lettura può ritardare la trasmissione della richiesta di query dalla replica di lettura al nodo di scrittura.
+ Un carico maggiore sul nodo di scrittura può ritardare la trasmissione dei dati dal nodo di scrittura alla replica di lettura.

**Azioni**

Se la replica di lettura o il nodo di scrittura sono limitati dalla CPU o dalla larghezza di banda della rete, valutare la possibilità di passare a un tipo di istanza con maggiore capacità di CPU o maggiore larghezza di banda della rete.

### IPC: AuroraWriteForwardXactStart
<a name="apg-waits.ipc:aurorawriteforwardxactstart"></a>

L’evento `IPC:AuroraWriteForwardXactStart` si verifica quando un processo di backend sulla replica di lettura è in attesa del risultato di un comando di transazione di avvio inoltrato.

**Probabili cause di aumento delle attese**

Alcune cause comuni dell'aumento dei tempi di attesa sono:
+ Una maggiore latenza di rete tra la replica di lettura e il nodo di scrittura aumenta il tempo necessario alla replica di lettura per ricevere i dati del nodo di scrittura.
+ Un carico maggiore sulla replica di lettura può ritardare la trasmissione della richiesta di query dalla replica di lettura al nodo di scrittura.
+ Un carico maggiore sul nodo di scrittura può ritardare la trasmissione dei dati dal nodo di scrittura alla replica di lettura.

**Azioni**

Se la replica di lettura o il nodo di scrittura sono limitati dalla CPU o dalla larghezza di banda della rete, valutare la possibilità di passare a un tipo di istanza con maggiore capacità di CPU o maggiore larghezza di banda della rete.