Database parallelo: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Gexkill (discussione | contributi)
Nuova pagina: Un ''Database'' parallelo cerca di migliorare le prestazioni mediante la parallelizzazione di varie funzionalità, ad esempio il caricamento dei dati,...
 
FrescoBot (discussione | contributi)
m Bot: numeri di pagina nei template citazione
 
(23 versioni intermedie di 12 utenti non mostrate)
Riga 1:
Un '''database parallelo''' è un tipo di [[base dati|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.<ref>{{Cite journalCita pubblicazione| last1 cognome1= Dewitt | first1 nome1= David| authorlink1 = David DeWitt| authorlink2 wkautore2= Jim Gray (computer scientist)| last2 cognome2= Gray | first2 nome2= Jim| doi = 10.1145/129888.129894 | title titolo= Parallel database systems: The future of high performance database systems |url = httphttps://www.cs.berkeley.edu/~brewer/cs262/5-dewittgray92.pdf| journal rivista= Communications of the ACM | volume = 35 | issue numero= 6 | pages p= 85 | year anno= 1992 |}}</ref> pmid =Nell'esecuzione parallela, |molte pmcoperazioni =sono }}</ref>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. LeI Basi di Batidatabase Paralleleparalleli migliorano l'elaborazione e la velocità di [[input/output|ingresso\-uscita]] usando più [[CPU|CPU]] e dischi fissi in parallelo. I sistemi di basi di dati centralizzati e [[Sistema_client/server|client–server]] non sono abbastanza performanti per occuparsi di tali applicazioni. Nell'esecuzione parallela, molte operazioni sono eseguite contemporaneamente, al contrario dell'esecuzione seriale, dove le diverse fasi di elaborazione sono sequenziali.
Un [[Base_di_dati|''Database'']] parallelo cerca di migliorare le prestazioni mediante la parallelizzazione di varie funzionalità, ad esempio il caricamento dei dati,
la costruzione degli indici e la gestione delle interrogazioni.<ref>{{Cite journal | last1 = Dewitt | first1 = David| authorlink1 = David DeWitt| authorlink2 = Jim Gray (computer scientist)| last2 = Gray | first2 = Jim| doi = 10.1145/129888.129894 | title = Parallel database systems: The future of high performance database systems |url = http://www.cs.berkeley.edu/~brewer/cs262/5-dewittgray92.pdf| journal = Communications of the ACM | volume = 35 | issue = 6 | pages = 85 | year = 1992 | pmid = | pmc = }}</ref> Sebbene i dati possono essere memorizzati in maniera distribuita, la loro suddivisione è comandata unicamente da fattori legati alle prestazioni. Le Basi di Bati Parallele migliorano l'elaborazione e la velocità di [[input/output|ingresso\uscita]] usando più [[CPU|CPU]] e dischi fissi in parallelo. I sistemi di basi di dati centralizzati e [[Sistema_client/server|client–server]] non sono abbastanza performanti per occuparsi di tali applicazioni. Nell'esecuzione parallela, molte operazioni sono eseguite contemporaneamente, al contrario dell'esecuzione seriale, dove le diverse fasi di elaborazione sono sequenziali.
 
==Architetture Paralleleparallele==
Le principali architetture usate sono le seguenti 3:
 
;*Architettura cona RAM condivisa: Dove più [[Central processing unit|processori]] condividono la stessa [[RAM|memoria principale (RAM)]] ma hanno una propria [[Read_Only_Memory|memoria di massa]] (HDDtipicamente sistemi a disco rigido)]]. Se molti processi sono in esecuzione contemporaneamente, la velocità si riduce, come avviene in un singolo computer quando molti task girano in parallelo. Tale architettura viene usualmente chiamata anche [[Sistema_multiprocessore_simmetricoSistema multiprocessore simmetrico|Symmetric Multi-Processor (SMP)]]
;* Architettura cona HDDmemoria condiviso:di massa Dovecondivisa: ogni nodo ha la propria memoria principale (RAM), ma tutti i nodi condividono la memoria di massa (HDD), di solito attraverso una rete [[Storage_Area_Network|Storage Area Network]]. In pratica, ogniOgni nodo di solito possiede processori multipli.
 
;* Architettura senza condivisione: Doveè abbiamouna combinazione di architetture multi-processore con memorie separate . Tale architettura viene normalmente chiamata [[Computer_clusterComputer cluster|Cluster]]
;Architettura con HDD condiviso: Dove ogni nodo ha la propria memoria principale (RAM), ma tutti i nodi condividono la memoria di massa (HDD), di solito attraverso una rete [[Storage_Area_Network|Storage Area Network]]. In pratica, ogni nodo di solito possiede processori multipli.
 
;Architettura senza condivisione: Dove abbiamo architetture multi-processore con memorie separate . Tale architettura viene normalmente chiamata [[Computer_cluster|Cluster]]
 
==Tipi di parallelismo==
Esecuzione* ''Parallelismo interquery'': prevede l'esecuzione di molteplici interrogazioni in parallelo. In questo caso, il carico a cui è sottoposto il [[Database_management_systemDatabase management system|DMBS]] è tipicamente caratterizzato da molteplici transazioni molto semplici conad elevata frequenza.
Esecuzione* ''Parallelismo interoperazionale'': prevede l'esecuzione di singole interrogazioni che possono consistere in più operazioni.
:Esistono due tipi di Parallelismoparallelismo Interoperazionaleinteroperazionale:
Esecuzione:*''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.
Esecuzione:*''Parallelismo pipe-lined'': l'esecuzione di diverse operazioni secondo la logica di funzionamento di una [[Pipeline_dati|Pipeline]]. Per esempio, se si ha la necessità di unire in(operazione di ''join'') tre tabelle, un processore può eseguire la joinl'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
* ''Parallelismo intraquery'': È il duale del parallelismo interquery. Riguarda l'esecuzione di interrogazioni complesse in parallelo con processori multipli. Per esempio. La proposizione ORDER BY di una query che prova ed ordinare milioni di record può essere parallelizzata su più processori.
 
==Note==
• '''Parallelismo Interquery'''
<references/>
 
==Bibliografia==
Esecuzione di molteplici interrogazioni in parallelo. In questo caso, il carico a cui è sottoposto il [[Database_management_system|DMBS]] è tipicamente caratterizzato da molteplici transazioni molto semplici con elevata frequenza.
*{{cita libro|titolo=Basi di dati 4/ed |autore= Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone|anno=2014 |ISBN=978-88-386-6587-5}}
 
== Collegamenti esterni ==
• '''Parallelismo Interoperazionale'''
<ref>*Saravanakumar Kandasamy - Explore Database - https://web.archive.org/web/20161117211543/https://exploredatabase.blogspot.in/2014/03/parallel-database-intraquery-parallelism.html</ref>
 
Esecuzione di singole interrogazioni che possono consistere in più operazioni.
 
Esistono due tipi di Parallelismo Interoperazionale:
 
* '''Parallelismo Indipendente'''
 
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'''
 
Esecuzione di diverse operazioni secondo la logica di funzionamento di una [[Pipeline_dati|Pipeline]]. Per esempio, se si ha la necessità di unire in join tre tabelle, un processore può eseguire la join 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
 
• '''Parallelismo Intraquery'''
 
E' il duale del parallelismo interquery.
Riguarda l'esecuzione di interrogazioni complesse in parallelo con processori multipli. Per esempio. La proposizione ORDER BY di una query che prova ed ordinare milioni di record può essere parallelizzata su più processori.
 
==Note==
<ref>Saravanakumar Kandasamy - Explore Database - https://exploredatabase.blogspot.in/2014/03/parallel-database-intraquery-parallelism.html</ref>
<ref>Basi di dati 4/ed - Concepts, Languages and Architectures - Paolo Atzeni, Stefano Ceri, Stefano Paraboschi and Riccardo Torlone - http://www.ateneonline.it/atzeni4e_basi-di-dati/?item_id=2986</ref>
{{Reflist}}
 
{{Tradotto da|en|Parallel database}}
{{DEFAULTSORT:Database Paralleli}}
[[CategoryCategoria:Basi di dati]]
{{Voce Scuole|Polimi Milano}}