Seminario sulle Architetture Distribuite per le basi di dati. Presentato durante il Corso di DataBase presso l'Università degli Studi di Catania - Corso di Laurea in Informatica (Facoltà di Scienze Matematiche, Fisiche e Naturali)
(Copyleft) Andrea Cannella 2010
18. OLAP: On Line Analytical Transaction Processing. Sono sistemi ottimizzati per analizzare i dati. Presuppongono di poter esportare i dati OLTP e importarli nei data warehouse (magazzini di dati)
21. Replicazione dei dati : costruisce copie dei dati esportandole nei vari nodi in modo da averne maggiore disponibilità.
22.
23. Interoperabilità: capacità di far interagire fra loro sistemi eterogenei. Dipende dagli standard relativi ai protocolli di accesso ai dati (ODBC e X-Open DTP)
31. Basi di dati distribuite Tipo di DBMS Rete LAN Rete WAN Omogeneo Applicazioni gestionali e finanziarie Sistemi di prenotazione e applicazioni finanziarie Eterogeneo Applicazioni gestionali interfunzionali Sistemi di prenotazione integrati, sistemi interbancari
62. In un sistema distribuito una transazione ti può eseguire varie sotto-transazioni tij (j rappresenta il nodo)
63.
64.
65.
66. se ciascuno scheduler della base di dati distribuita usa su ciascun nodo il metodo di locking a due fasi e svolge l’azione di commit in modo atomico in un istante in cui le sotto-transazioni ai vari nodi detengono tutte le risorse, gli schedule risultanti sono globalmente serializzabili rispetto ai conflitti
67. se un insieme di sotto-transazioni distribuite acquisisce un unico timestamp e lo usa nelle sue richieste a tutti gli scheduler che usano il controllo di concorrenza basato su timestamp, gli schedule risultanti sono globalmente seriali in base all’ordinamento indotto dai timestamp.
68.
69. I timestamp sono formati da due gruppi di cifre. Il meno significativo rappresenta il nodo, il più significativo l'evento;
70. I timestamp si sincronizzano quando i nodi si scambiano messaggi. L'evento ricezione deve avere un timestamp successivo a quello di invio.
75. L'atomicità delle transazioni è garantita se tutti i nodi che partecipano a una transazione giungono alla medesima decisione sulla transazione (commit o abort).
85. Global commit o global abort che determinano l'esito della transazione
86.
87. Ready indica la disponibilità a partecipare al protocollo di commit a 2 fasi
88.
89. Gli RM quando arriva il prepare scrivono il record di ready sul proprio log e lo trasmettono al TM. Se l'RM non era pronto a causa di un guasto invia un messaggio di not-ready e termina il protocollo.
90. Il TM colleziona le risposte degli RM. Se erano tutti ready scrive global committ, altrimenti global abort
91.
92. Gli RM che sono in uno stato di ready attendono il messaggio del TM. Quando arriva scrivono commit o abort nel proprio log. Inviano quindi al TM il messaggio di ack.
106. Se l'ultimo record è un commit la caduta non ha effetti sulla transazione
107.
108. La perdita un un messaggio di decisione o di un ack non sono distinguibili per cui scatta un timeout nella seconda fase e viene ripetuta
109. Un partizionamento non provoca problemi in quanto la transazione avrà successo soltanto se TM e RM appartengono alla stessa partizione durante le fasi critiche del protocollo
110.
111. Il commit a 2 fasi è abbbastanza oneroso. Abbiamo inoltre assunto che le scritture nel log fossero sincrone per garantirne la persistenza.
112.
113.
114.
115. Bisogna scrivere in modo sincrono solo ready e commit per gli RM e global commit nel TM
116.
117.
118. Al messaggio di prepare ciascun partecipante sola lettura avvisa il TM che lo ignorerà nella seconda fase del protocollo.
119.
120.
121.
122. L'atomicità può essere persa qualora venga partizionata la rete e si scelgano 2 o più partecipanti.
130. Parallelismo intra-query: quando si eseguono parti della stessa query in parallelo. I DBMS sono tipicamente caratterizzati da query complesse. È utile in sistemi OLAP
135. MySQL Cluster è un DataBase ad alte prestazioni clusterizzato e affidabile.
136. MySQL Cluster MySql Cluster è un RDBMS ACID-Compliant , ad alta affidabilità e alte prestazioni, costruito usando l’architettura shared-nothing e una interfaccia SQL standard. Il sistema consta di nodi (processi), distribuiti su macchine diverse, anche dislocate geograficamente, per assicurare la continuità del servizio anche nel caso in cui un nodo o la rete siano compromessi. MySql Cluster usa uno storage engine , che provvede alla memorizzazione dei dati sui nodi, abilitando l’accesso attraverso query SQL standard. Usa il protocollo di commit a 2 fasi
137.
138. i dati all’interno di un data node sono replicati, in modo che il sistema possa tollerare fallimenti di nodo: altri nodi contengono le stesse informazioni;
139. i nodi di management possono essere spenti e poi riaccesi senza conseguenze sulle attività degli altri nodi.