AWS Aurora: come funziona la cache

  • Di
  • 2024-10-03 - 3 minuti
banner

Quando abbiamo parlato dei costi, abbiamo fatto presente come lo storage, il tipo di istanza e anche l’I/O influenzino il costo: ma come funziona la cache dei dati, e come ci permette di risparmiare sulla fattura?

Scopriamo il funzionamento del buffer pool.

Cosa vedrai

Cos’è il buffer pool

Il buffer pool di Aurora memorizza i dati richiesti dalle query sotto forma di pagine di dati. In altre parole, è il meccanismo di cache con cui il database memorizza le informazioni che sono state recuperate dopo l’esecuzione della query fornita dall’utente.

Come funziona

In Aurora, i dati vengono memorizzati su disco sotto forma di pagine di dati. Una pagina di dati è un blocco di memoria di dimensioni fisse (in genere 16 KB) che contiene una o più righe da una tabella o un indice.

Il buffer pool è una regione di memoria allocata dal motore del database per memorizzare nella cache le pagine di dati. È strutturato come un elenco collegato di pagine di dati, con ogni pagina contenente un’intestazione e i dati effettivi.

Aurora utilizza un algoritmo LRU (abbreviazione di Least Recently Used) per gestire il buffer pool. Quando viene richiesta una pagina di dati, Aurora verifica prima se è già nel buffer pool. In caso contrario, legge la pagina dal disco e la aggiunge al buffer pool, potenzialmente “rimuovendo” la pagina meno utilizzata di recente se il buffer pool è pieno.

Ogni pagina di dati nel buffer pool ha metadati associati, come la tabella e l’indice a cui appartiene, il numero di pagina e informazioni riguardo lo stato della pagina, ossia se questa è stata modificata o meno.

Infatti, quando una query modifica i dati nel buffer pool, le pagine corrispondenti vengono contrassegnate come “sporche”. Queste pagine sporche vengono rimosse dal disco scrivendo le modifiche nel livello di archiviazione, garantendo la durabilità dei dati.

Memorizzando nella cache le pagine di dati a cui si accede di frequente nel buffer pool, Aurora può ridurre significativamente la necessità di costose operazioni di I/O su disco, migliorando anche le prestazioni della query. Tra l’altro, l’algoritmo LRU assicura che i dati utilizzati più di frequente rimangano nel buffer pool, mentre i dati utilizzati meno di frequente vengono espulsi per fare spazio a nuove pagine.

È importante notare che la dimensione del buffer pool è configurabile e che scegliere una dimensione appropriata è fondamentale per avere delle prestazioni ottimali. Un buffer pool troppo piccolo può portare a frequenti “pulizie” di dati e a un aumento dell’I/O del disco, mentre un buffer pool troppo grande può sprecare risorse di memoria.

E i costi?

Per i costi, oltre a rimandare al calcolatore dei prezzi di AWS che è lo strumento più adatto e aggiornato, i fattori principali che influenzano il costo di un database Amazon Aurora sono, complessivamente:

  • Tipo di istanza del database: i prezzi si basano sul tipo di istanza del database scelta, ad esempio Serverless, Provisioned o Reserved Instances. Le istanze più potenti con maggiore capacità di elaborazione e memoria costeranno di più.

  • Utilizzo dello storage: ti verrà addebitata la quantità di storage allocata per il tuo cluster di database Aurora, misurata in GB-mese.

  • Backup: qualsiasi backup storage utilizzato per archiviare backup automatici e snapshot manuali del database ha un costo.

  • Trasferimento dati: potrebbero essere applicati costi per il trasferimento dati fuori dal cloud AWS, a seconda della quantità di dati trasferiti.

Inoltre, l’utilizzo di funzionalità avanzate come Aurora Global Database, Aurora Multi-Master o Aurora Parallel Query può comportare ancora costi aggiuntivi.

Per ottimizzare i costi, puoi scegliere la configurazione Aurora I/O-Optimized, che elimina i costi separati per le operazioni I/O e fornisce prezzi più prevedibili per carichi di lavoro I/O intensivi: in pratica, paghi solo per le istanze del database e lo storage utilizzato.

Post correlati

Partners

Community, aziende e persone che supportano attivamente il blog

Logo di Codemotion
Logo di GrUSP
Logo di Python Milano
Logo di Schrodinger Hat
Logo di Python Biella Group
Logo di Fuzzy Brains
Logo di Django Girls
Logo di Improove
Logo del libro open source
Logo di NgRome
Logo de La Locanda del Tech
Logo di Tomorrow Devs
Logo di UseCaseConf

Non perderti gli ultimi aggiornamenti, iscriviti a TheRedCode Digest!

La tecnologia corre, e tu devi correre più veloce per rimanere sempre sul pezzo! 🚀

Riceverai una volta al mese (o anche meno) con codici sconto per partecipare agli eventi del settore, quiz per vincere dei gadget e i recap degli articoli più interessanti pubblicati sul blog

Ci sto!

#TheRedComics

Edizione di Agosto

A cura di Sophie Aiello, copy di Chiara Romano

Fumetto di agosto di Sophie Aiello

Vuoi diventare #tech content writer? 🖊️

Se vuoi raccontare la tua sul mondo #tech con dei post a tema o vuoi condividere la tua esperienza con la community, sei nel posto giusto! 😉

Manda una mail a collaborazioni[at]theredcode.it con la tua proposta e diventa la prossima penna del blog!

Ma sì, facciamolo!