Database parallelo

Un database parallelo è un tipo di database in cui le prestazioni vengono ottimizzate tramite la parallelizzazione di varie funzionalità, ad esempio il caricamento dei dati, la costruzione degli indici e la gestione delle interrogazioni. Nell'esecuzione parallela, molte operazioni sono eseguite contemporaneamente, al contrario dell'esecuzione seriale, dove le diverse fasi di elaborazione sono sequenziali. Sebbene i dati possono essere memorizzati in maniera distribuita, la loro suddivisione è comandata unicamente da fattori legati alle prestazioni. I database paralleli migliorano l'elaborazione e la velocità di ingresso-uscita usando più CPU e dischi fissi in parallelo.

Architetture parallele

Le principali architetture usate sono:

Tipi di parallelismo

Esistono due tipi di parallelismo interoperazionale:
  • Parallelismo Indipendente: l'esecuzione di ogni singola operazione viene divisa su diversi processori solo se possono essere eseguite indipendentemente l'una dall'altra. Per esempio, se si intende costruire una join di quattro tabelle, allora due possono essere messe in join sfruttando un processore e le altre due da un'altra CPU. La join complessiva può essere fatta successivamente.
  • Parallelismo pipe-lined: l'esecuzione di diverse operazioni secondo la logica di funzionamento di una Pipeline. Per esempio, se si ha la necessità di unire (operazione di join) tre tabelle, un processore può eseguire l'unione tra le prime due e inviare l'insieme dei record risultanti ad un altro processore. In quest'ultimo la terza tabella viene unita alla precedente operazione di join e viene generato il risultato finale

Note

  1. ↑ David Dewitt e Jim Gray, Parallel database systems: The future of high performance database systems (PDF), in Communications of the ACM, vol. 35, n. 6, 1992, p. 85, DOI:10.1145/129888.129894.

Bibliografia

Collegamenti esterni