BDE-TRANS 1 Gestione di transazioni concorrenti. BDE-TRANS 2 Lock Principio: –Tutte le letture sono precedute da r_lock (lock condiviso) e seguite da.

Slides:



Advertisements
Presentazioni simili
Schedulazione e Pattern a confronto Vera Dean Support Account Manager Atlantis Milano, giugno 2007.
Advertisements

Premessa: si assume di aver risolto (correttamente
Meccanismi di IPC Problemi classici di IPC
Architettura MySQL E Motori MySQL L. Vigliano.
Capitolo 3 Risorse e Stallo 3.1. Risorse 3.2. Introduzione
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
Database MySql.
Java: programmazione concorrente con condivisione di memoria
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
1 System Call per Comunicazione tra Processi Pipe.
Interfaccia del file system
Silberschatz, Galvin and Gagne Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei.
Deadlock Modello del sistema Caratterizzazione dei deadlock
La Modifica dei Dati in una Base Dati La modifica dei dati contenuti allinterno di una base dati è unoperazione delicata Infatti, ogni potenziale problema.
Algoritmi e Strutture Dati
Politecnico di MilanoW.Fornaciari Deadlock Corso di Calcolatori Elettronici AA
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Tecnologia di un data base server: Controllo della Concorrenza
Algoritmi e Strutture Dati
Risorse e Stallo.
Tecnologie di un database server: la gestione della concorrenza
Corso di Programmazione Concorrente Stallo Valter Crescenzi nz.
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
Deadlock.
Aspetti sistemistici dellSQL. SQL environment Un SQL environment è un framework dove esistono dati e possono aversi istruzioni SQL eseguite su questi.
Cenni sulla gestione delle transazioni in DBMS
Le transazioni Itis Max Planck.
Modulo 13: System call relative al File System
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Distributed File System Service Dario Agostinone.
Concorrenza e Sincronizzazione di Thread e Processi
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
Cos’è una transazione? Una transazione è un’unità logica di elaborazione richiesta da un’applicazione che dà luogo a una serie di operazioni fisiche elementari.
Corso di Basi di Dati Il Linguaggio SQL
Basi di Dati e Sistemi Informativi
Lezione n° 18: Maggio Problema del trasporto: formulazione matematica Anno accademico 2008/2009 Prof. Cerulli – Dott.ssa Gentili Lezioni di.
File system distribuito transazionale con replicazione
GESTIONE GRANULARE DEGLI ACCESSI FINESTRE DI DETTAGLIO INTERSCAMBIO DEI DATI CON LARCHIVIO DI ALTRE PROCEDURE TRASFERIMENTO E SALVATAGGIO STAMPE PDF GESTIONE.
Architettura Centralizzata di un DBMS Relazionale
Sessione live Testing. Esercizio Quesito 1 Soluzione 1.
1 Il Buffer Cache Unix (Bach: the Design of the Unix Operating System (cap: 3)
Progetto Message Queues Service Olivelli Enrico Corso di Reti di Calcolatori LS A.A
Migliorare le prestazioni delle cache
ATOMICITÀ Il tipo di atomicità di un programma PL/SQL è stabilito dall’ambiente chiamante oppure dal programma Gestione atomicità: –COMMIT –SAVEPOINT nome_punto.
1 Tecnologia di un Database Server S. Costantini Dispensa per il Corso di Basi di dati e Sistemi Informativi Il materiale per queste slide e’ stato tratto.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Processi e Thread Processi Thread
Infrastruttura per la gestione distribuita di un sistema di prenotazione Progetto di: Fabio Fabbri Matricola
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati.
Transazioni in MySQL 4 Transazioni in MySQL 4
1 Risorse e Stallo 2 Risorse (1) Esempi di risorse –stampanti –nastri –tabelle I processi devono accedere alle risorse in un ordine ragionevole Supponiamo.
BDE-TRANS 1 Gestione di transazioni concorrenti. BDE-TRANS 2 Controllo di concorrenza La concorrenza è fondamentale: decine o centinaia di transazioni.
BDE-ARC 1 BDE Architetture distribuite. BDE-ARC 2 BDE Basi di dati distribuite a RETE : LAN (Local Area Network) LAN (Local Area Network) WAN (Wide Area.
Controllo della concorrenza basato sui timestamp.
1 Competizione e cooperazione pag. 88 Cap.3 - Esecuzione concorrente di processi 1.
Anno Architetture dati DBMS Centralizzati Controllo di concorrenza Carlo Batini.
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi Complessità e Trasportabilità Lezione n°3.
Il Sistema Operativo Processi e Risorse
Socket programming in Java La realizzazione di un server in Java consente di scrivere una sola versione eseguibile su diverse piattaforme. Il linguaggio.
Protocollo di locking a due fasi stretto
Write-only, read-only.
Lock a tre valori.
Lock binario.
Tecnologia di un Database Server
Lock.
Transcript della presentazione:

BDE-TRANS 1 Gestione di transazioni concorrenti

BDE-TRANS 2 Lock Principio: –Tutte le letture sono precedute da r_lock (lock condiviso) e seguite da unlock –Tutte le scritture sono precedute da w_lock (lock esclusivo) e seguite da unlock Quando una transazione prima legge e poi scrive un oggetto, può: –richiedere subito un lock esclusivo –chiedere prima un lock condiviso e poi uno esclusivo (lock escalation) Il lock manager riceve queste richieste dalle transazioni e le accoglie o rifiuta, sulla base della tavola dei conflitti

BDE-TRANS 3 Gestione dei lock Basata sulla tavola dei conflitti RichiestaStato della risorsa freer_lockedw_locked r_lockOK / r_lockedOK / r_lockedNO/ w_locked w_lockOK / w_lockedNO / r_lockedNO / w_locked unlockerrorOK / dependsOK / free –Un contatore tiene conto del numero di "lettori"; la risorsa è rilasciata quando il contatore scende a zero Se la risorsa non è concessa, la transazione richiedente è posta in attesa (eventualmente in coda), fino a quando la risorsa non diventa disponibile Il lock manager gestisce una tabella dei lock, per ricordare la situazione

BDE-TRANS 4 Locking a due fasi Usato da quasi tutti i sistemi Garantisce "a priori" la conflict-serializzabilità Basata su due regole: –"proteggere" tutte le letture e scritture con lock –un vincolo sulle richieste e i rilasci dei lock: una transazione, dopo aver rilasciato un lock, non può acquisirne altri Ogni schedule 2PL e’ conflict serializzabile, ma non necessariamente viceversa

BDE-TRANS 5 Locking a due fasi stretto Condizione aggiuntiva: –I lock possono essere rilasciati solo dopo il commit o abort Supera la necessità dell'ipotesi di commit-proiezione (ed elimina il rischio di letture sporche)

BDE-TRANS 6 CSR, VSR e 2PL Schedule Seriali Schedule VSR Schedule CSR Schedule 2PL

BDE-TRANS 7 Controllo di concorrenza basato su timestamp Tecnica alternativa al 2PL Timestamp: –identificatore che definisce un ordinamento totale sugli eventi di un sistema Ogni transazione ha un timestamp che rappresenta l'istante di inizio della transazione Uno schedule è accettato solo se riflette l'ordinamento seriale delle transazioni indotto dai timestamp

BDE-TRANS 8 Dettagli Lo scheduler ha due contatori RTM (x) e WTM (x) per ogni oggetto Lo scheduler riceve richieste di letture e scritture (con indicato il timestamp della transazione): –read(x,ts): se ts < WTM (x) allora la richiesta è respinta e la transazione viene uccisa ( ha gia’ operato una transazione partita dopo ); altrimenti, la richiesta viene accolta e RTM (x) è posto uguale al maggiore fra RTM (x) e ts –write(x,ts): se ts < WTM (x) o ts < RTM (x) allora la richiesta è respinta e la transazione viene uccisa, altrimenti, la richiesta e WTM (x) è posto uguale a ts Vengono uccise molte transazioni Per funzionare anche senza ipotesi di commit-proiezione, deve "bufferizzare" le scritture fino al commit (con attese)

BDE-TRANS 9 Esempio RTM (x) = 7 WTM (x) = 4 RichiestaRispostaNuovo valore read(x,6)ok read(x,8)ok RTM (x) = 8 read(x,9)ok RTM (x) = 9 write(x,8)no, t 8 uccisa write(x,11)ok WTM (x) = 11 read(x,10)no, t 10 uccisa

BDE-TRANS 10 CSR, VSR, 2PL e TS Seriali Tutti VSR CSR 2PL TS

BDE-TRANS 11 2PL vs TS In 2PL le transazioni sono poste in attesa in TS uccise e rilanciate Per rimuovere la commit proiezione, attesa per il commit in entrambi i casi 2PL può causare deadlock (vedremo) Le ripartenze sono di solito più costose delle attese: –conviene il 2PL

BDE-TRANS 12 Stallo (deadlock) Attese incrociate: due transazioni detengono ciascuna una risorsa e aspettano la risorsa detenuta dall'altra Esempio: –t 1 : read(x), write(y) –t 2 : read(y), write(x) –Schedule: r_lock 1 (x), r_lock 2 (y), read 1 (x), read 2 (y) w_lock 1 (y), w_lock 2 (x) con 2PL x e y bloccate

BDE-TRANS 13 Risoluzione dello stallo Uno stallo corrisponde ad un ciclo nel grafo delle attese (nodo=transazione, arco=attesa) Tre tecniche 1. Timeout (problema: scelta dell'intervallo, con trade-off) 2. Rilevamento dello stallo 3. Prevenzione dello stallo Rilevamento: ricerca di cicli nel grafo delle attese Prevenzione: valutando operativita’ transazioni