Architetture distribuite

Documenti analoghi
Architetture Distribuite

Basi di dati distribuite. BD distribiute 1

Basi di Dati Distribuite

6 BASI DI DATI DISTRIBUITE. Paradigma client-server I- ARCHITETTURE CLIENT-SERVER SERVER. Paradigmi per la distribuzione dati.

TRANSAZIONI DISTRIBUITE TRANSAZIONI

Architetture distribuite

Basi di dati distribuite

Architetture Distribuite per Basi di Dati

Tecnologia di un Database Server (centralizzato) Introduzione generale

L architettura di un DBMS

Linguaggio SQL: costrutti avanzati

Coordinazione Distribuita

11. Basi di dati distribuite ed architetture client-server

Pag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo

Esecuzione concorrente di transazioni

Basi di Dati prof. A. Longheu. 5 Progettazione fisica

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Gestione delle transazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1

Replicazione. Requisisti di consistenza i clienti devono ricevere risposte consistenti e coerenti. Motivazioni

Parte IX Basi di dati distribuite e parallele

Basi di Dati e Sistemi Informativi. Architetture Distribuite per Basi di Dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

Introduzione all Architettura del DBMS

Sistemi centralizzati e distribuiti

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

DB - Cenni sulla gestione delle transazioni

Tratti dal cap. 9 di: Atzeni, Ceri, Paraboschi, Torlone Basi di Dati II edizione, 1999, McGraw-Hill

Recovery manager Gestore della affidabilità

Data Base Management System. Strumenti: Formato: Pro: Contro: Software specifico. Proprietario

Tecnologia di un Database Server (centralizzato) Gestione dell affidabilità

Il linguaggio SQL: transazioni

Indice Prefazione SQL Procedurale/SQL-PSM (Persistent Stored Modules)... 3 Vincoli e Trigger... 9

INTRODUZIONE. Motivazioni e Obbiettivi

Transazioni. Capitolo 13. Scrittura immediata e scrittura differita. Concorrenza in un DBMS. Una transazione. Gestione delle transazioni

Linee guida per la programmazione di transazioni in PL/SQL

TRANSAZIONI. Una transazione è una successione di operazioni che si può concludere con successo o con insuccesso.

8 Tecniche di recovery

APPENDICE. Procedure in SQL (1)

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf

SISTEMI DISTRIBUITI. Criteri classificazione DBMS distribuiti

Transazioni. Transazioni. Transazioni. Definizione di una transazione. Transazione

Caratteristiche principali. Contesti di utilizzo

Capitolo 7. Esercizio 7.1

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

DBMS (Data Base Management System)

Unsolicited Bulk (UBE) (spamming) Francesco Gennai IAT - CNR Francesco.Gennai@iat.cnr.it

Facoltà di Farmacia - Corso di Informatica

Data Warehousing (DW)

Organizzazione degli archivi

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Comunicazione tra Processi

Comunicazione tra Processi

Indicare se i seguenti schedule possono produrre anomalie; i simboli ci e ai indicano l esito (commit o abort) della transazione.

Sistemi transazionali. sistemi transazionali 1

Oracle PL/SQL. Motivazioni

Lezione 8. Metadati, Viste e Trigger

Transazioni. Architettura di un DBMS. Utente/Applicazione. transazioni. Transaction Manager. metadati, statistiche.

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Sistema di Gestione di Basi di Dati DataBase Management System DBMS

Corso di Basi di Dati e Conoscenza

Corso di Informatica

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Sincronizzazione e coordinamento nel distribuito

Sistemi avanzati di gestione dei Sistemi Informativi

1. BASI DI DATI: GENERALITÀ

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Secondo Compitino di Basi di Dati

Manuale Terminal Manager 2.0

Modello a scambio di messaggi

Procedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati

Inizializzazione degli Host. BOOTP e DHCP

Base di dati e sistemi informativi

Ottimizzazione delle interrogazioni (parte I)

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Modello relazionale. ing. Alfredo Cozzi 1

Firewall, Proxy e VPN. L' accesso sicuro da e verso Internet

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer

MODELLO AD AMBIENTE GLOBALE

SISTEMI OPERATIVI DISTRIBUITI

Sistemi di gestione delle basi di dati. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Corso di Informatica

1.1 Introduzione alle basi di dati

BENEDETTI ALESSANDRO Matricola : PROGETTO DI TECNOLOGIA DELLE BASI DI DATI PARTE 2

Reti di Calcolatori

Utilizzo dei Server DNS e relative implicazioni

CAPITOLO 7 - SCAMBIO DI MESSAGGI

Progettaz. e sviluppo Data Base

Traccia delle soluzioni

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

GERARCHIE RICORSIVE - SQL SERVER 2008

Basi di Dati. prof. Letizia Tanca. Le transazioni e il database server, cenni sui nuovi sistemi per Big Data

Basi di Dati e Sistemi Informativi. Le Transazioni. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Informatica Documentale

MDAC. Attualmente la versione disponibile di MDAC è la 2.8 ma faremo riferimento alla 2.6. ADO Active Data Objects ADO OLE DB ODBC

Transcript:

Architetture distribuite -ARC 1

Basi di dati distribuite a RETE : LAN (Local Area Network) WAN (Wide Area Network) b DBMS : Sistema omogeneo Sistema eterogeneo SYBASE ORACLE DB2 CLIENT -ARC 2

Problemi delle basi di dati distribuite Autonomia vs cooperazione Trasparenza Efficienza Affidabilità -ARC 3

Autonomia e cooperazione L'esigenza di autonomia: - Portare competenze e controllo laddove vengono gestiti i dati - Rendere la maggior parte delle applicazioni NON distribuite (!) L'esigenza di cooperazione: - Alcune applicazioni sono intrinsecamente distribuite e richiedono l'accesso a piu' basi di dati -ARC 4

Frammentazione dei dati Scomposizione delle tabelle in modo da consentire la loro distribuzione proprieta': - Completezza - Ricostruibilita' -ARC 5

Frammentazione orizzontale FRAMMENTI: insiemi di tuple COMPLETEZZA: presenza di tutte le tuple FR1 FR2 FR3 RICOSTRUZIONE: unione -ARC 6

Frammentazione verticale FRAMMENTI: insiemi di attributi COMPLETEZZA: presenza di tutti gli attributi FR1 FR2 FR3 RICOSTRUZIONE: join sulla chiave -ARC 7

Esempio: conti correnti bancari CONTO-CORRENTE (NUM-CC,NOME,FILIALE,SALDO) TRANSAZIONE (NPROG, NUM-CC,DATA, OPERAZIONE, AMMONTARE, CAUSALE) CENTRO FILIALE1 FILIALE2 FILIALE3 -ARC 8

Frammentazione orizzontale principale Ri = σ Pi R esempio: CONTO1 = σ Filiale=1 CONTO-CORRENTE CONTO2 = σ Filiale=2 CONTO-CORRENTE CONTO3 = σ Filiale=3 CONTO-CORRENTE -ARC 9

Frammentazione orizzontale derivata Si = S < Ri esempio: TRANS1 = TRANSAZIONE < CONTO1 TRANS2 = TRANSAZIONE < CONTO2 TRANS3 = TRANSAZIONE < CONTO3 -ARC 10

Allocazione dei frammenti CENTRO CONTO1 CONTO2 CONTO3 TRANS1 TRANS2 TRANS3 CONTO1 CONTO2 CONTO3 TRANS1 TRANS2 TRANS3 FILIALE 1 FILIALE 2 FILIALE 3 -ARC 11

Livelli di trasparenza Modalita per esprimere interrogazioni offerte dai DBMS commerciali: LIVELLI: FRAMMENTAZIONE ALLOCAZIONE LINGUAGGIO -ARC 12

Trasparenza di frammentazione QUERY : estrarre il saldo del conto corrente 45 SELECT SALDO FROM CONTO-CORRENTE WHERE NUM-CC=45 -ARC 13

Trasparenza di allocazione IPOTESI : Allocazione incerta, probabilmente alla filiale 1 SELECT SALDO FROM CONTO1 WHERE NUM-CC=45 IF (NOT FOUND) THEN ( SELECT SALDO FROM CONTO2 WHERE NUM-CC=45 UNION SELECT SALDO FROM CONTO3 WHERE NUM-CC=45 ) -ARC 14

Trasparenza di linguaggio SELECT SALDO FROM CONTO1@1 WHERE NUM-CC=45 IF (NOT FOUND) THEN ( SELECT SALDO FROM CONTO2@2 WHERE NUM-CC=45 UNION SELECT SALDO FROM CONTO3@3 WHERE NUM-CC=45 ) -ARC 15

Efficienza Ottimizzazione delle query Modalita' di esecuzione - seriale - parallela -ARC 16

Esecuzione seriale CENTRO CONTO2 CONTO3 CLIENT CONTO1 FILIALE1 -ARC 17

Esecuzione parallela CLIENT CONTO1 CONTO2 CONTO3 FILIALE1 FILIALE2 FILIALE3 -ARC 18

Protocolli di commit -ARC 19

Transazioni distribuite BEGIN TRANSACTION UPDATE CONTO1@1 SET SALDO=SALDO + 500.000 WHERE NUM-CC=45; UPDATE CONTO2@2 SET SALDO=SALDO - 500.000 WHERE NUM-CC=35; COMMIT-WORK END TRANSACTION -ARC 20

Transazioni distribuite CLIENT 45 + 500.000 35-500.000 FILIALE1 FILIALE2 -ARC 21

Proprieta' ACIDe dell esecuzione distribuita Isolamento se ciascuna sottotransazione e' a due fasi la transazione e' globalmente serializzabile Persistenza se ciascuna sottotransazione gestisce correttamente i log, i dati sono globalmente persistenti Consistenza se ciascuna sottotransazione preserva l'integrita' locale i dati sono globalmente consistenti Atomicita' e' il principale problema delle transazioni distribuite -ARC 22

Guasti in un sistema distribuito Caduta di nodi Perdita di messaggi Interruzione della rete MSG -ARC 23

Protocolli distribuiti e perdita di messaggi A: SEND(B,MSG) B: RECEIVE(MSG) SEND(A,ACK) A: RECEIVE(ACK) -ARC 24

Commit a due fasi Protocollo per garantire l'atomicita' di sotto-transazioni distribuite Protagonisti - un coordinatore (Transaction Manager, TM) - molti partecipanti (Resource Manager, RM) Come un matrimonio - fase uno: dichiarazione di intenti - fase due: dichiarazione del matrimonio -ARC 25

Record nel log del coordinatore a PREPARE: identita' dei partecipanti b GLOBAL COMMIT/ABORT: decisione c COMPLETE: termine del protocollo Record nel log del partecipante a READY: disponibilita' al commit b LOCAL COMMIT/ABORT: decisione ricevuta -ARC 26

Fase 1 C: WRITE-LOG(PREPARE) SET TIME-OUT SEND (Pi,PREPARE) Pi: RECEIVE(C,PREPARE) IF OK THEN WRITE-LOG(READY) MSG=READY ELSE MSG=NO SEND (C,MSG) -ARC 27

Fase 2 C: RECEIVE(Pi,MSG) IF TIME-OUT OR ONE(MSG)=NO THEN WRITE-LOG(GLOBAL-ABORT) DECISION=ABORT ELSE WRITE-LOG(GLOBAL-COMMIT) DECISION=COMMIT SEND(Pi,DECISION) C: RECEIVE(Pi,ACK) WRITE-LOG(COMPLETE) Pi: RECEIVE(C,DECISION) IF COMMIT THEN WRITE-LOG(COMMIT) ELSE WRITE-LOG(ABORT) SEND (C,ACK) -ARC 28

Diagramma del commit a due fasi PREPARE coordinatore GLOBAL DECISION COMPLETE t PREPARE MSG DECISION ACK partecipante READY LOCAL DECISION t -ARC 29

Protocollo 2PCommit con time-out e finestra di incertezza Prepare Global Decision Complete time-out 1 time-out 2 TM prepare msg ready msg decision msg ack msg Ready Local Decision RM Finestra di incertezza -ARC 30

Incertezza Un RM dopo essersi dichiarato ready perde la sua autonomia e attende la decisione del TM. Un guasto del TM lascia l RM in uno stato di incertezza, in cui tutte le risorse acquisite con lock sono bloccate. L intervallo tra la scrittura dei record ready e commit o abort è chiamato finestra di incertezza. Il protocollo è progettato per minimizzare la sua durata. -ARC 31

Complessità del protocollo Deve poter gestire tutti i guasti: - caduta del coordinatore - caduta di uno o più partecipanti - perdite di messaggi I protocolli di recovery sono svolti dai TM o RM dopo i guasti; ristabiliscono uno stato finale corretto -ARC 32

Perdita di messaggi La perdita dei messaggi di prepare o ready sono indistinguibili; in entrambi i casi scatta il time-out sul TM e viene deciso un global abort. La perdita dei messaggi decision or ack sono pure indistinguibili. In entrambi i casi scatta il time-out sul TM e viene ripetuta la seconda fase. -ARC 33

Recovery dei partecipanti Viene svolto con ripresa a caldo; per ogni transazione dipende dall ultimo record (azione) nel log: Se è una azione generica oppure un abort tutte le azioni sono disfatte; se è un commit, le azioni vengono rifatte; Se è un ready, il guasto è accaduto durante il commit a due fasi; il partecipante è in dubbio circa l esito della transazione. Durante il protocollo di ripresa a caldo, si collezionano tutte le transazioni in dubbio; di esse si chiede l esito ai rispettivi TM (richiesta di recovery remota). -ARC 34

Recovery del coordinatore Quando l ultimo record nel log è un prepare, il guasto del TM può essere la causa di un blocco di qualche RM. Il TM ha due opzioni: Scrivere global abort sul log, e comunicare decisione ripetendo la seconda fase del protocollo di commit a due fasi (Ripetere la prima fase, provando a raggiungere un commit globale) Quando l ultimo record è la una decisione globale, alcuni RM potrebbero essere bloccati. Il TM deve ripetere la seconda fase del protocollo, ricomunicando la decisione. -ARC 35

Protocollo di abort presunto E una ottimizzazione, usata da tutti i sistemi commerciali: Se un TM riceve una richiesta di remote recovery da un RM in dubbio di cui non ha traccia, risponde per default che la transazione ha fatto un global abort -ARC 36

Ottimizzazione read-only Quando un RM svolge solo operazioni di lettura, Risponde read-only al messaggio di prepare message e esce dal protocollo. Il TM ignora tutti gli RM read-only nella seconda fase del protocollo. -ARC 37

Standardizzazione del protocollo Standard X-open Distributed Transaction Processing (DTP): - commit a 2 fasi con ottimizzazioni - molti DBMS sul mercato -ARC 38