sistemi distribuiti - Dipartimento di Ingegneria dell`Informazione

Transcript

sistemi distribuiti - Dipartimento di Ingegneria dell`Informazione
SISTEMI DISTRIBUITI
• Criteri di classificazione dei sistemi distribuiti
– Autonomia, distribuzione, eterogeneità
• Architetture per DBMS distribuiti
– Client/server
– Peer-to-peer
– Multi-database
• Regole di Date per sistema relazionale distribuito.
• Trasparenza.
• Sistemi paralleli.
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
1
Criteri classificazione DBMS distribuiti
•
•
•
•
I sistemi possono essere caratterizzati secondo tre dimensioni
Autonomia dei sistemi locali; indica il grado a cui i DBMS
individuali possono operare in modo indipendente
– Integrazione stretta
– Sistemi pienamente indipendenti, multi-database
– Gradi intermedi
Distribuzione dei sistemi; fa riferimento alla distribuzione fisica
dei dati (dall’utente sono comunque visti come un unico insieme
logico)
– Client / server
– Peer-to-peer
Eterogeneità dei sistemi (modello dei dati, linguaggi, protocolli di
gestione delle transazioni)
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
2
1
Criteri di classificazione: autonomia (1)
•
Elenco1 di requisiti che caratterizzano l’autonomia
– Le operazioni locali dei DBMS individuali non sono influenzate dalla
loro partecipazione ad un sistema multi-database
– Il modo in cui i DBMS individuali eseguono e ottimizzano le query
non dovrebbe essere influenzato dalla esecuzione di query globali che
accedono a database multipli
– L’operatività del sistema non dovrebbe essere compromessa da
DBMS individuali che si aggiungono o lasciano la confederazione
multi-database
•
Elenco2 di requisiti che caratterizzano l’autonomia
– Autonomia di progetto: i DBMS individuali sono liberi di usare i
modelli di dati e le tecniche di gestione delle transazioni che
preferiscono
– Autonomia di comunicazione: i DBMS individuali sono liberi di
decidere quale tipo di informazione comunicare all’esterno
– Autonomia di esecuzione: ogni DBMS può eseguire le transazioni che
gli vengono sottomesse nel modo che vuole
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
3
Criteri di classificazione: autonomia (2)
•
Integrazione stretta
– Anche se le informazioni sono allocate in più nodi, un utente vede una
immagine unica dell’intero database
– Dal punto di vista dell’utente, i dati sono logicamente centralizzati in
un unico database (sistema logicamente integrato)
•
Sistemi semiautonomi (detti anche federati omogenei o eterogenei)
– I DBMS possono operare in modo indipendente, ma hanno deciso di
partecipare ad una federazione per rendere spartibili i loro dati
– Ogni DBMS determina quali parti del proprio database sono
accessibili agli altri DBMS
– Non sono sistemi pienamente autonomi perché hanno bisogno di
essere modificati per poter scambiarsi informazioni
•
Isolamento totale
– I sistemi individuali sono DBMS stand-alone che non conoscono
l’esistenza di altri DBMS
– Al di sopra di essi c’è uno strato di software che permette di integrarli
in qualche modo, si parla di multi-database
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
4
2
Criteri di classificazione: distribuzione
• Client/server
– Gestione dei dati sul server e l’ambiente dell’applicazione
(compresa l’interfaccia utente) sul client
– L’onere della comunicazione è spartito tra client e server
– Alcuni siti sono client, altri server, e la loro funzionalità è
diversa
• Peer-to-peer
– Non c’è distinzione tra client e server
– Ciascun sito ha un DBMS pienamente funzionale e può
comunicare con altri siti per eseguire query e transazioni
– Questi sistemi sono anche detti “fully distributed”
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
5
Criteri di classificazione: eterogeneità
•
•
L’eterogeneità fa riferimento ai modelli di dati, ai query language,
ai protocolli di gestione delle transazioni
– Ogni modello di dati ha un certo potere espressivo e certe
limitazioni
– Il query language può essere diverso in relazione a modelli
diversi e anche in relazione allo stesso modello (es. SQL e
QUEL per il modello relazionale)
L’eterogeneità è ortogonale all’autonomia
– Possiamo avere sistemi logicamente integrati formati da
componenti eterogenee e sistemi multi-database con
componenti omogenee
– Es. basi dati logicamente integrate con componenti omogenee:
sistema distribuito impiantato da zero
– Es. sistemi multi-database con componenti eterogenee:
integrazione di sistemi preesistenti che rimangono anche
autonomi
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
6
3
BDD logicamente integrate
• Descrizione dei dati
– Uno schema logico locale per ogni DBMS
– Uno schema logico globale
– Gli schemi esterni si appoggiano sullo schema logico globale
• Moduli funzionali (generalmente schema client server)
– Il server è composto da più client e più server
– Nella generazione dei piani di accesso ai dati, abbiamo una
ottimizzazione globale in cui il client decide i compiti da
affidare ai diversi server, e il server locale genera il piano di
accesso locale
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
7
Basi dati logicamente integrate
schema dei dati
Schema esterno
Schema esterno
Schema logico globale
Schema logico locale
Schema logico locale
Schema interno locale
Schema interno locale
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
8
4
Multi-Database Systems – descrizione dei
dati
• Unico schema logico globale
– Ogni database locale espone all’esterno parte dei suoi dati
– Lo schema globale unico fa riferimento a queste parti ,
rappresenta un sottoinsieme dell’unione dei vari database
• Assenza di un unico schema logico globale
– Ogni nodo ha degli schemi esterni locali a cui può essere fatto
accesso
– Si hanno più schemi esterni globali, ciascuno dei quali può far
riferimento ad un unico o a più schemi esterni locali
– L’eterogeneità dei sistemi appesantisce il mapping fra gli
schemi esterni locali e quelli globali
– I cosiddetti DBMS federati fa nno parte di questa categoria
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
9
Multi-Database Systems : schema dei dati
Schema est. globale
Schema est. globale
Schema est. globale
Schema est. globale
Schema est. locale
Schema log. globale
Schema est. locale
Schema est. locale
Schema log. locale
Schema log. locale
Schema log. locale
Schema log. locale
Schema int. locale
Schema int. locale
Schema int. locale
Schema int. locale
Con schema globale
F.Cesarini - Basi Dati
Distribuite
Senza schema globale
sistemi distribuiti
10
5
Multi-database Systems – moduli
funzionali
• I sistemi locali hanno una completa autonomia
• Al di sopra dei sistemi locali esiste un livello di software
di integrazione
– Decomposizione delle query in sotto-query da eseguire sui
sistemi locali
– Integrazione dei risultati parziali per ottenere il risultato
globale
– Mapping fra il linguaggio del sistema multi-database e i
linguaggi dei sistemi locali
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
11
Multi-database - integrazione
applicazione
applicazione
applicazione
software di integrazione
DBMS
F.Cesarini - Basi Dati
Distribuite
DBMS
sistemi distribuiti
12
6
Sistemi Client/Server (1)
ambiente centralizzato
•
•
Architettura a due livelli
Architettura molto usata per basi dati centralizzate
•
•
Il server effettua la maggior parte del lavoro che riguarda la
gestione dei dati: esecuzione e ottimizzazione delle query, gestione
delle transazioni, gestione della memorizzazione
Sul client viene eseguita l’applicazione, gestita l’interfaccia utente,
e gestiti i dati memorizzati nella cache del client
Le esigenze hw e sw di server e client sono diverse
•
Convenienza:
•
– Nel contesto delle basi dati le due funzioni sono bene identificate
– Client: PC con strumenti di produttività tipici dell’automazione dell’ ufficio
– Server: memorie di massa grosse e affidabili, efficienza delle operazioni di I/O,
buffer di grandi dimensioni
– Riduzione dei costi (più macchine specializzate al posto di una “complessiva”)
– Incremento della robustezza del sistema
– Aumento della scalabilità (possibilità di aggiungere nuove applicazioni e nuovi
utenti )
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
13
Operating
system
Architettura client/server
User interface
Application program
……..
Client DBMS
Communication software
SQL query
Result relation
Communication software
Operating
System
Semantic Data Controller
Query Optimizer
Transaction Manager
Recovery Manager
Runtime Support Processor
Data Base
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
14
7
Sistemi Client/Server (2)
ambiente distribuito
•
•
•
•
In un contesto distribuito una transazione può coinvolgere più
server
Multiple client / single server: il database è memorizzato su una
unica macchina (abbiamo quindi un ambiente centralizzato)
Multiple client / multiple server
– Ciascun client gestisce la propria connessione con il server
appropriato
• Si semplifica il codice del server ma si appesantisce il client (heavy
client)
– Ciascun client conosce il proprio “home server”, ed è questo che
comunica con gli altri server se necessario
• Le funzionalità di gestione dei dati sono concentrate sui server
(light client)
• La trasparenza dell’accesso ai dati è fornita dall’interfaccia d el
server
L’utente ha sempre la visione di un unico database mentre a livello
fisico i dati possono essere distribuiti
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
15
Sistemi distribuiti Peer–to-Peer
•
•
•
•
Con questi termini ci si riferisce in genere alle caratteristiche
seguenti che riguardano un ambiente pienamente distribuito
Non c’è distinzione tra client e server, tutti i siti hanno le stesse
funzionalità
Si ha uno schema logico globale che è visto da tutti i siti; le
applicazioni vedono schemi esterni costruiti su questo schema
Su ogni sito abbiamo il componente user processor
–
–
–
–
•
User interface handler
Semantic data controller
Global query optimizer and decomposer
Distributed execution monitor / distributed transaction manager
Su ogni sito abbiamo il componente data processor
– Local query optimizer
– Local recovery manager
– Run-time support manager (interfaccia col sop, buffer manager …)
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
16
8
Componente user processor
•
User interface handler
– Interpreta i comandi utente e formatta i risultati da restituire
all’utente
•
Semantic data controller
– Usa i vincoli di integrità e le autorizzazioni definite a livello di schema
logico globale per controllare se la query utente può essere eseguita
•
Global query optimizer and decomposer
– Determina una strategia di esecuzione cercando di minimizzare una
funzione costo
– Trasforma la query globale in query locali utilizzando il catalogo
globale, lo schema logico globale, gli schemi logici locali
•
Distributed execution monitor, distributed execution manager
– Coordina l’esecuzione distribuita della richiesta utente
– Viene in genere fatto riferimento a più di un sito, quindi i vari
execution monitor comunicano fra di loro
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
17
Componente data processor
•
Local query optimizer
– Sceglie il cammino di accesso migliore per accedere ai dati (es. un
indice)
•
Local recovery manager
– Ha la responsabilità di mantenere il database locale consistente anche
se ci sono dei fallimenti o guasti
•
Run-time support manager
– Accede fisicamente ai dati
– Include il database buffere manager
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
18
9
Regole di Date per sist. relazionale distr.
Cfr. Albano Ghelli Orsini “Basi di dati relazionali e a oggetti” , Zanichelli.
•
Autonomia locale
– I dati locali sono gestiti in modo indipendente dagli altri siti
•
Uguaglianza dei siti
•
Continuità delle operazioni
– Non esiste un sito “centrale” con servizi particolari
– Nessuna attività pianificata dovrebbe comportare interruzioni del
servizio
•
Indipendenza dalla localizzazione
– Gli utenti e i programmi non necessitano di conoscere la
localizzazione fisica dei dati
•
Indipendenza dalla frammentazione
– Gli utenti e i programmi non necessitano di conoscere la
frammentazione dei dati
•
Indipendenza dalla replicazione
– Gli utenti e i programmi non necessitano di conoscere la replicazione
dei dati e di mantenerne l’allineamento
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
19
Regole di Date per sist. relazionale distr.
Cfr. Albano Ghelli Orsini “Basi di dati relazionali e a oggetti” , Zanichelli.
•
Elaborazione distribuita delle interrogazioni
•
Gestione distribuita delle transazioni
– L’ottimizzazione delle query tiene conto della distribuzione dei dati
– Transazioni concorrenti che modificano dati in più siti devono essere
serializzabili (controllo della concorrenza) e devono lasciare la base di
dati distribuita in uno stato consistente in caso di malfunzionamenti
(controllo dei malfunzionamenti)
•
Indipendenza dall’hardware
– Il DBMS deve offrire le stesse funzionalità nei vari siti a prescindere
dall’hardware disponibile, con tutti i sistemi che partecipano in modo
paritetico
•
Indipendenza dal software
– Il DBMS deve offrire le stesse funzionalità nei vari siti a prescindere
dal software di sistema disponibile, con tutti i sistemi operativi che
partecipano in modo paritetico
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
20
10
Regole di Date per sist. relazionale distr.
Cfr. Albano Ghelli Orsini “Basi di dati relazionali e a oggetti” , Zanichelli.
•
Indipendenza dalla rete
– Il DBMS deve offrire le stesse funzionalità nei vari siti a prescindere
dal software di rete disponibile, con tutte le reti che partecipano in
modo paritetico
•
Indipendenza dal DBMS
– Il DBMS deve offrire le stesse funzionalità nei vari siti a prescindere
dal DBMS disponibile, con tutti i DBMS che partecipano in modo
paritetico
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
21
TRASPARENZA
•
•
•
Un sistema “trasparente” nasconde all’utente i dettagli della
implementazione
Separazione tra la semantica ad alto livello di un sistema e le
questioni di implementazione a basso livello
DBMS centralizzato: indipendenza dai dati
– Logical data independence: se una applicazione è costruita sopra un
opportuno insieme di viste, rimane inalterata anche se lo schema
logico cambia, purché le viste non cambino (cambieranno le modalità
di costruzione delle viste)
– Physical data independence: una applicazione vede le relazioni, e
quindi è indipendente dai dettagli della loro implementazione
•
DBMS distribuito
– Trasparenza di frammentazione
– Trasparenza di replicazione
– Trasparenza di linguaggio
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
22
11
Trasparenza di frammentazione: esempio
cfr. Atzeni, Ceri, …”Basi di dati – architetture e linee di evoluzione”,
McGraw-Hill, 2003
•
Esempio:
–
–
–
–
•
Azienda con impiegati a Firenze e Torino: Imp (cod, nome, sede)
Imp1 = σsede=‘FI’ Imp
Imp2 = σsede=‘TO’ Imp
[email protected] [email protected] [email protected]
Query: dato un codice si vuole il nome dell’impiegato
Trasparenza di frammentazione (la query è uguale a quella che si
avrebbe per una relazione non frammentata)
PROCEDURE Q1 (:cod, :nome);
SELECT nome INTO :nome
FROM Imp
WHERE cod = :cod;
END PROCEDURE;
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
23
Trasparenza di allocazione: esempio
cfr. Atzeni, Ceri, …”Basi di dati – architetture e linee di evoluzione”, McGraw -Hill,
2003
Imp1 = σsede=‘FI’ Imp
Imp2 = σsede=‘TO’ Imp
[email protected] [email protected] [email protected]
Query: dato un codice si vuole il nome dell’impiegato
•
Trasparenza di allocazione: si conosce la struttura dei frammenti
ma non la loro allocazione; in particolare non si conosce neanche
se un frammento è replicato o no (trasp. di replicazione)
PROCEDURE Q2 (:cod, :nome);
SELECT nome INTO :nome
FROM Imp1
WHERE cod = :cod;
IF :empty THEN
SELECT nome INTO :nome
FROM Imp2
WHERE cod = :cod;
END PROCEDURE;
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
24
12
Trasparenza di linguaggio: esempio
cfr. Atzeni, Ceri, …”Basi di dati – architetture e linee di evoluzione”, McGraw -Hill,
2003
Imp1 = σsede=‘FI’ Imp
Imp2 = σsede=‘TO’ Imp
[email protected] [email protected] [email protected]
Query: dato un codice si vuole il nome dell’impiegato
•
Trasparenza di linguaggio: si è a conoscenza della struttura dei
frammenti e della loro locazione; in caso di replicazione si deve indicare
un nodo; si ha però un unico linguaggio per riferirsi ai diversi frammenti
PROCEDURE Q3 (:cod, :nome);
SELECT nome INTO :nome
FROM [email protected]
WHERE cod = :cod;
IF :empty THEN
SELECT nome INTO :nome
FROM [email protected]
WHERE cod = :cod;
END PROCEDURE;
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
25
Sistemi paralleli per data base
•
•
•
•
•
Vengono usate architetture multiprocessore per migliorare le prestazioni
Nota: negli anni 80 furono studiate architetture speciali per basi di dati
(data base machine), orientate ad eliminare il cosiddetto I/O bottleneck;
non ne derivarono soluzioni di ampio utilizzo a causa di un alto rapporto
costo/prestazioni
Negli anni 90 si sono diffuse le architetture multiprocessore generiche
(non dedicate alle basi di dati)
Idea di base: sfruttare il parallelismo per aumentare le prestazioni
– Se memorizziamo un database di dimensione D su un disco di
throughput T, il throughput del sistema è limitato da T
– Se partizionamo il database su n dischi, di capacità D/N e throughput
T, idealmente con n processori possiamo ottenere un throughput di
nT
Un sistema per database parallelo dovrebbe aumentare
– Le prestazioni
– La disponibilità dei dati (eventuale replicazione)
– Estensibilità (aggiungendo processor e memoria)
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
26
13
Architettura shared-memory
P1
Pn
cache
cache
Memory1
Memoryn
bus
disk1
F.Cesarini - Basi Dati
Distribuite
diskn
sistemi distribuiti
27
Architettura shared-memory
•
•
•
•
•
Ogni processore può avere accesso ad ognuno dei moduli di
memoria o dei dischi attraverso una connessione veloce (bus o
cross-bar switch)
Le meta-informazioni (dizionario) e le informazioni di controllo
(es. lock) possono essere spartite da tutti i processori
Il parallelismo inter-query è insito nell’architettura
Il parallelismo intra-query richiede una opportuna
parallelizzazione
Limitazioni dell’approccio
– Alto costo dell’interconnessione (ogni processore deve essere connesso
con ogni memoria e con ogni disco)
– L’estensibilità è limitata (10-20 processori)
– Il fallimento di una memoria può mettere in crisi più processori
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
28
14
Architettura shared-disk
P1
P2
local
memory
local
memory
………….
Pn
local
memory
interconnection network
disk
F.Cesarini - Basi Dati
Distribuite
disk
………
disk
sistemi distribuiti
29
Architettura shared-disk
•
•
•
•
•
•
Ogni processore ha accesso a qualsiasi disco attraverso l’accesso
esclusivo alla propria memoria
Ogni processore può accedere alle pagine del database sul disco
spartito e copiarle nella propria cache
I processori comunicano attraverso messaggi o dati su disco
Il costo della interconnessione è minore che nell’architettura
shared memory poiché può essere usato un bus standard
Poiché ciascun processore ha abbastanza cache, le interferenze sul
disco spartito possono essere minime
Limitazioni
– Mantenere la coerenza delle copie può causare un notevole overhead
– Sono necessari protocolli di database distribuito, come locking
distribuito e commit a due fasi
•
Esempio di architettura
– implementazione di ORACLE su DEC’s VAXcluster
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
30
15
Architettura shared-nothing
interconnection network
P1
P1
local memory
local memory
disk
disk
F.Cesarini - Basi Dati
Distribuite
P1
…..
local memory
disk
sistemi distribuiti
31
Architettura shared-nothing
•
•
•
•
•
Ciascun processore ha accesso esclusivo alla propria memoria e al
proprio disco, i processori comunicano attraverso messaggi
Ciascun nodo può essere visto come un sito locale in database
system distribuito
Esempi: Teradata DBC (che può avere fino a 1024 processori) e
Tandem NonStopSQL
È necessaria una implementazione delle funzioni di database
distribuito che assuma la presenza di un gran numero di nodi
Il bilanciamento del carico di lavoro dipende strettamente dal
partizionamento del database
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
32
16
Architettura shared-nothing
•
•
•
Questa architettura è la migliore sia per scale-up che per speed-up
Linear scale-up: all’aumentare del numero di nodi aumenta la
complessità del problema che si può risolvere
Linear speed-up: all’aumentare del numero di nodi aumenta la
velocità con cui un problema può essere risolto
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
33
Parallelismo
•
•
Le elaborazioni svolte da un DBMS si prestano ad essere eseguite
in parallelo
Parallelismo inter-query
– Esecuzione di query diverse in parallelo
– È particolarmente utile in ambiente OLTP (On Line Transaction
Processing), transazioni semplici molto frequenti, centinaia o migliaia
al secondo
– Più processi server allocati sui vari processori; le interrogazioni
vengono raccolte da un dispatcher che ridirige l’interrogazione su un
server
•
Parallelismo intra-query
– Esecuzione in parallelo di parti della stessa query
– È particolarmente utile in ambiente OLAP (On Line Analytical
Processing), poche interrogazioni molto complesse su grosse quantità
di dati
– L’ottimizzatore deve individuare una decomposizione della query in
sotto-query, e coordinarle e sincronizzarle
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
34
17
Esempio da [4] - OLTP
ContoCorrente (Ccnum, Nome, Saldo)
Movimento (Ccnum, Data, Progr, Causale, Ammontare)
– Tabelle frammentate per intervalli di Ccnum
– Ogni coppia di frammenti relativa allo stesso intervallo associata ad
un processore
•
Query OLTP (richiesta del saldo di un conto)
Procedure Queryx (:cc-num, :saldo);
select Saldo into :saldo
from ContoCorrente
where Ccnum = :cc-num;
End procedure
•
La interrogazione OLTP viene indirizzata ad uno specifico
frammento in base al predicato di selezione
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
35
Esempio da [4] - OLAP
ContoCorrente (Ccnum, Nome, Saldo)
Movimento (Ccnum, Data, Progr, Causale, Ammontare)
• Query OLAP (richiesta dei correntisti che nel 2004 hanno avuto
movimenti per un ammontare totale maggiore di 50000 euro)
Procedure Queryy ();
select Ccnum, sum (Ammontare)
from ContoCorrente join Movimento
on (ContoCorrente.Ccnum = Movimento.Ccnum)
where Data between (1/01/04, 31/12/04)
group by Ccnum
having sum (abs(Ammontare)) > 50000;
End procedure
•
La query è indirizzata su tutti i frammenti in parallelo
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
36
18
Partizionamento dei dati
(shared-nothing)
network
P1
network
P2
P3
P1
P2
P3
hash
network
P1
P2
P3
a–h
k–s
t-z
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
37
Partizionamento dei dati
•
Round Robin partitioning
– Con n partizioni, la i-esima tupla è assegnata alla partizione (i mod n)
– L’accesso sequenziale a una relazione può essere fatto in parallelo
– L’accesso a tuple individuali, in base a un predicato, richiede l’accesso
a tutta la relazione
•
Hash partitioning
– Viene applicata ad un attributo una funzione hash che da il numero di
partizione
– Una query di ricerca esatta sull’attributo di partizionamento viene
eseguita solo su un nodo
– Le altre query possono essere elaborate in parallelo
•
Range partitioning
– Le tuple sono distribuite in base ad intervalli di valore di un attributo
– Una query di ricerca esatta sull’attributo di partizionamento viene
eseguita solo su un nodo
– È adatto alle range query
– Se non si ha una distribuzione uniforme dei valori dell’attributo, si
può avere uno sbilanciamento del carico
F.Cesarini - Basi Dati
Distribuite
sistemi distribuiti
38
19