Capacità di espansione e capacità adattiva di DynamoDB
Per ridurre al minimo la limitazione (della larghezza di banda della rete) dovuta alle eccezioni di throughput, DynamoDB utilizza la capacità di espansione per gestire i picchi di utilizzo. DynamoDB utilizza la capacità adattiva per aiutare a gestire modelli di accesso irregolari.
Capacità di ottimizzazione
DynamoDB garantisce una certa flessibilità nell'assegnazione della velocità di trasmissione effettiva grazie alla capacità di espansione. Quando non si utilizza completamente il throughput di una partizione, DynamoDB riserva una parte della capacità inutilizzata per successive espansioni del throughput per la gestione dei picchi di traffico. Con la capacità supplementare, le richieste di lettura o scrittura impreviste possono avere esito positivo anziché essere sottoposte a throttling.
DynamoDB attualmente mantiene fino a cinque minuti (300 secondi) di capacità di lettura e scrittura non utilizzata. Durante un’espansione occasionale di attività di lettura o scrittura, queste unità di capacità extra possono essere utilizzate rapidamente, anche più velocemente della capacità di throughput allocata al secondo definita per la tabella.
DynamoDB può inoltre utilizzare la capacità di ottimizzazione per la manutenzione in background e altre attività senza preavviso.
Tieni presente che tali dettagli della capacità di ottimizzazione in futuro potrebbero cambiare.
Capacità adattiva
DynamoDB distribuisce automaticamente i dati tra le partizioni, che sono archiviate su più server nel Cloud AWS. Non sempre è possibile distribuire l’attività di lettura e scrittura in modo uniforme. Se l'accesso ai dati non è equilibrato, una partizione "hot" può ricevere un volume più elevato di traffico di lettura e scrittura rispetto ad altre partizioni. Poiché le operazioni di lettura e scrittura su una partizione vengono gestite in modo indipendente, si verificherà la limitazione (della larghezza di banda della rete) se una singola partizione riceve più di 3000 operazioni di lettura o più di 1000 operazioni di scrittura. La capacità adattiva funziona aumentando automaticamente la capacità di throughput per le partizioni che ricevono più traffico.
Per gestire meglio i modelli di accesso non uniformi, la capacità adattiva di DynamoDB permette all'applicazione di continuare con le attività di lettura e scrittura sulle partizioni hot senza che si verifichi una limitazione, a condizione che tale traffico non superi la capacità totale assegnata alla tabella o la capacità massima della partizione. La capacità adattiva funziona aumentando automaticamente la capacità di throughput per le partizioni che ricevono più traffico.
Nel diagramma seguente viene illustrato il funzionamento della capacità adattiva. Alla tabella di esempio vengono assegnate 400 WCU condivise in modo uniforme su quattro partizioni, consentendo a ciascuna partizione di sostenere fino a 100 WCU al secondo. Le partizioni 1, 2 e 3 ricevono ciascuna un traffico di scrittura di 50 WCU/s. La partizione 4 riceve 150 WCU/s. Questa partizione hot può accettare il traffico di scrittura mentre ha ancora una capacità di ottimizzazione inutilizzata, ma alla fine limiterà il traffico che supera 100 WCU/s.
La capacità adattiva di DynamoDB risponde aumentando la capacità della partizione 4 in modo che questa possa sostenere il carico di lavoro maggiore di 150 WCU al secondo senza alcuna limitazione (della larghezza di banda della rete).
La capacità adattiva è abilitata automaticamente per tutte le tabelle DynamoDB, senza costi aggiuntivi. Non è necessario abilitarla o disabilitarla esplicitamente.
Isolare gli elementi con accesso frequente
Se l'applicazione instrada un traffico elevato in modo sproporzionato verso uno o più elementi, la capacità adattiva eseguirà un bilanciamento delle partizioni, affinché gli elementi ad accesso frequente non siano ubicati all'interno della stessa partizione. Questo isolamento degli elementi ad accesso frequente riduce la probabilità di throttling delle richieste a causa del superamento della quota del throughput del carico di lavoro su una singola partizione. Puoi anche suddividere una raccolta di elementi in segmenti in base alla chiave di ordinamento, purché tale raccolta non generi traffico monitorato da un aumento o una diminuzione monotoni della chiave di ordinamento.
Se l'applicazione invia in modo coerente traffico elevato a un singolo elemento, la capacità adattiva può riequilibrare i dati in modo tale che una partizione contenga solo quel singolo elemento con accesso frequente. In questo caso, DynamoDB può inviare alla partizione una velocità di trasmissione effettiva fino a un massimo di 3.000 RCU o 1.000 WCU alla chiave primaria dell'elemento specifico. La capacità adattiva non suddivide le raccolte di elementi su più partizioni della tabella quando è presente un indice secondario locale.