Basi di dati distribuite: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m +Risorsa
Nessun oggetto della modifica
Riga 113:
* '''Perdita del TM''': se il TM non ha ancora inviato le azioni globali, un ''global abort'' viene effettuato. Altrimenti il ''TM'' reinvierà tutti i messaggi globali.
* '''Problemi di rete''': se un messaggio viene perso o vi è una separazione della rete, si esauriranno i timeout in attesa dei riscontri e dei ''ready'' e un ''global abort'' sarà inviato dal TM. Il sistema è comunque in grado di eseguire transazioni che facciano parte della partizione del TM.
 
== Parallelismo ==
Dagli anni '90 la forte diffusione di macchine general-purpose, ha portato ad avere sistemi con architettura multiprocessore ma non specifici per basi di dati. Le operazioni sulle base di dati possono essere eseguite in modo parallelo con una buona efficienza e scalabilità.
 
Un parametro importante per la misura del carico di lavoro transazionale è il '''tps''' (transactions per seconds), utile in particolare per i sistemi OLTP.
 
Per parallellizzare una base di dati, vengono utilizzate principalmente due tecniche:
* '''inter-query parallelism''': le query vengono distribuite (in modo atomico) tra le unità elaborative. Questa tecnica è usata quando alla base di dati vengono richieste spesso piccole ma numerose query;
* '''intra-query parallelism''': ogni query è suddivisa in più parti e distribuita tra le unità elaborative. Ovviamente questa tecnica è adatta a query molto lunghe, come quelle per l'analisi dei dati.
 
La memoria (di massa e volatile) può essere gestita in modo condiviso (''shared memory'') oppure a memoria separate (''shared nothing''), con eventualmente l'uso di una [[w:Storage Area Network|SAN]].
 
== Basi di dati replicate ==
In molte applicazioni distribuite i dati vengono duplicati in più server o datacenter, per diversi motivi:
* efficienza: un server può accedere alla sua copia locale anzichè doverla richiedere a un altro server;
* affidabilità: se la copia principale viene corrotta, un'altra copia può essere usata come backup;
* disponibilità: in caso di guasto a una sola parte del sistema, un'altra parte può fornire il servizio senza interruzioni se ha quella sezione di base di dati mancante.
 
Il problema di '''replicare i dati''' è principalmente il mantenere allineate tutte le copie attraverso la '''propagazione dei dati'''.
 
== Note ==