PowerPoint Presentation

Documente similare
PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

Microsoft Word - Curs_07.doc

PowerPoint Presentation

UNIVERSITATEA POLITEHNICA DIN BUCUREȘTI FACULTATEA DE ELECTRONICĂ, TELECOMUNICAȚII ȘI TEHNOLOGIA INFORMAȚIEI TEMĂ DE CASĂ Gestiunea tranzacțiilor în s

Microsoft Word - 2 ES RO.doc

Introducere

Analiză de flux de date 29 octombrie 2012

Analiză statică Analiza fluxului de date 23 octombrie 2014

Microsoft Word - Lab1a.doc

1. Găsiți k numerele cele mai apropiate într-un şir nesortat Dându-se un şir nesortat și două numere x și k, găsiți k cele mai apropiate valori de x.

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

Microsoft Word - grile.doc

Slide 1

Platformăde e-learning și curriculăe-content pentru învățământul superior tehnic Sisteme de operare 13. Planificarea proceselor

Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

PowerPoint Presentation

PowerPoint Presentation

E_d_Informatica_sp_SN_2014_bar_10_LRO

Logică și structuri discrete Logică propozițională Marius Minea marius/curs/lsd/ 3 noiembrie 2014

PHP (II)

PPSD

Laborator02

Addendum Syllabus 6 Microsoft Access 2016 REF Syllabus 6.0 Cunoașterea domeniilor în care se utilizează bazele de date Datorită potenţialului ma

PowerPoint Presentation

E_d_Informatica_sp_MI_2015_bar_02_LRO

2 BAZE TEORETICE ALE REȚELELOR DE CALCULATOARE CAPITOLUL 2 BAZE TEORETICE ALE REŢELELOR DE CALCULATOARE 2.1. Necesitatea standardizării (referenţierii

Aggregating Data

Diapositive 1

Ghid Privind aplicarea regimului de avizare în temeiul articolului 4 alineatul (3) din Regulamentul privind agențiile de rating de credit 20/05/2019 E

Managementul Resurselor Umane

PowerPoint Presentation

Microsoft PowerPoint - TDRC_II-10-TCP.ppt

Nr. 5925/ STRATEGIA ANUALĂ DE ACHIZIŢII PUBLICE PE ANUL 2019 A CENTRULUI CULTURAL DUNĂREA DE JOS GALAŢI 1. Noţiuni introductive Potrivit dis

Prezentarea calculatorului

1. a. Să se scrie un algoritm care să afişeze toate numerele de patru cifre care au cifra sutelor egală cu o valoare dată k, şi cifra zecilor cu 2 mai

Lucrarea nr. 2 Aplicaţii de tip client Mihai IVANOVICI 6 martie 2006 Scopul acestei lucrări este de a vă familiariza cu modulul Python socket şi cu mo

Retele Petri si Aplicatii

Microsoft Word - CarteC.doc

INSTRUCŢIUNI privind condiţiile şi criteriile de aplicare a politicii de clemenţă În temeiul art. 27 alin. (1) din Legea concurenţei nr. 21/1996, repu

Microsoft Word - Curs_10.doc

Slide 1

Microsoft PowerPoint - Curs_SDA_10_RO_2019_v1.pptx

Microsoft Word - Curs_08.doc

B

Baze de date-Anul 2 (semestrul 2)

Ministerul Educatiei, Cercetarii si Tineretului Grup Scolar Gh. Asachi Galati Proiect pentru obtinerea certificatului de competente profesionale Speci

PowerPoint Presentation

Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

Strategie_2018

Mai multe despre optimizare

PowerPoint Presentation

Nr. 932 din Avizat ISJ Vâlcea, Inspector școlar informatică, Ciochină Luisa EXAMEN DE ATESTARE A COMPETENȚELOR PROFESIONALE A ABSOLVENȚILOR

Modul Modbus ASCII SISTEME DE COMUNICATIE CURS 5 - Constantinescu Catalin Atunci cand se foloseste modul MODBUS ASCII fiecare octet din mesaj

Microsoft Word - CarteC.doc

Chestionar privind despăgubiri collective

Caraivan George-Alexandru Grupa 431A Interfața driver-kernel la Linux Introducere Deși pentru unii dintre noi acest lucru poate fi o supriză, cei mai

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

Subiectul 1

Cursul 12 (plan de curs) Integrale prime 1 Sisteme diferenţiale autonome. Spaţiul fazelor. Fie Ω R n o mulţime deschisă şi f : Ω R n R n o funcţie de

Strategia anuală de achiziţie publică pe anul 2017 a Primariei Orasului Uricani

Proceduri stocate Syntax: CREATE PROCEDURE <Name> type1,...] AS -- secventa de comenzi SQL GO O procedura stocata se ruleaza cu EXEC: EXEC <N

Raport privind calitatea executiei pentru anul 2018 (MiFID II)

FILTRE DE REALIZARE CU CIRCUITE DE INTEGRARE

PowerPoint-Präsentation

Baze de date - Anul 2 Laborator 8 Limbajul de definire a datelor (LDD) (partea I) În general, instrucţiunile LDD sunt utilizate pentru definirea struc

Retele Petri si Aplicatii

Ingineria Sistemelor de Programare

A.E.F. - suport laborator nr.3 sem.ii Aplicațe privind utilizarea rețelelor 1D În acest laborator sunt atinse următoarele aspecte: realizarea schițelo

ROMÂNIA JUDEŢUL SUCEAVA ORAŞUL MILIŞĂUŢI Loc. Milişăuţi, jud.suceava, tel/fax: 0230/ , 0230/ , Cod fiscal prima

Metode de programare Proiectarea algoritmilor

Metode de sortare - pregătire admitere - Conf.dr. Alexandru Popa Lect. dr. Andrei Pătraşcu Universitatea din Bucureşti 1

Grafuri neorinetate Aplicatii 1 Care este numărul maxim de componente conexe pe care le poate avea un graf neorientat cu 20 noduri şi 12 muchii? a. 6

Microsoft Word - tcad_l6.doc

Cuantizare Vectoriala.doc

Guardian2012_RO3

Logică și structuri discrete Relații. Funcții parțiale Marius Minea marius/curs/lsd/ 20 octombrie 2014

Microsoft PowerPoint - 2. Riscuri de coruptie in achizitii publice.ppt [Compatibility Mode]

Limbaje de ordinul I LOGICA DE ORDINUL I Un limbaj L de ordinul I este format din: o mulţime numărabilă V = {v n n N} de variabile; conectorii şi ; pa

Microsoft Word - lab-fr_3

Colegiul Naţional "Eudoxiu Hurmuzachi" Rădăuţi PROCEDURĂ DE SISTEM Implementarea Standardului 4: Structura organizatorica Cod: PS-SCIM-04 Ediţia: a II

Laborator 3

Baze de date

Cuprins

1 PROCEDURĂ OPERAȚIONALĂ CAZAREA STUDENŢILOR PR-Facultatea de Chimie și Inginerie Chimică Entitatea publică: Universitatea Babeș-Bolyai Cluj-Napoca Fa

MINISTERUL ADMINISTRAŢIEI Exemplar nr

Grafuri - Concepte de baza. Tipuri de grafuri. Modalitati de reprezentare

SUBPROGRAME

SSC-Impartire

Kein Folientitel

RZOLVARE EXERCITIU ZODII declare cursor distributie_zodie is select nume_zodie, count(*) distributie from zodiac z join utilizatori u on to_date(to_ch

LUCRAREA 8 PROGRAMAREA NELINIARĂ ÎN REZOLVAREA PROBLEMELOR DIN ENERGETICĂ. METODE DE ORDINUL Aspecte generale Programarea neliniară are o foart

Probleme rezolvate informatica: Probleme rezolvate grafuri si a

DIRECTIVA (UE) 2018/ A CONSILIULUI - din 20 decembrie de modificare a Directivei 2006/ 112/ CE privind sistemul comun a

Microsoft Word - Pocatilu_IE3_2006.doc

Anexa nr. 2 Aprobat CA al ISJ FIȘA CADRU DE (AUTO)EVALUARE A DIRECTORULUI ADJUNCT Numele și prenumele: Unitatea de învățământ: Perioada eva

Transcriere:

CURS 2 Planificarea Tranzacţiilor Gestionarea Concurenţei

Planificarea tranzacţiilor O planificare reprezintă ordonarea secvenţială a instrucţiunilor (Read / Write / Abort / Commit) a n tranzacţii astfel încât ordinea instrucţiunilor fiecărei tranzacţii se păstrează 2

Planificarea tranzacţiilor T1: T2: read(a) read(sum) read(a) A := A + 20 write(a) commit read(a) sum := sum + A write(sum) commit Schedule read1(a) read1(sum) read2(a) write2(a) commit2 read1(a) write1(sum) commit1 3

Planificarea tranzacţiilor Planificare serială: este planificarea ce nu intercalează acţiuni ale mai multor tranzacţii. T1: T2: read(a) A := A + 20 write(a) commit read(a) read(sum) read(a) sum := sum + A write(sum) commit Planificare non-serială: acţiunile mai multor tranzacţii concurente se interpătrund. 4

Planificarea tranzacţiilor Planificări echivalente: Pentru orice stare a bazei de date, efectul (asupra obiectelor bazei de date) al executării unei planificări este identic cu efectul executării celei de-a doua planificări. Planificări serializabile: este o planificare non-serială care este echivalentă cu o planificare de execuţie serială a tranzacţiilor implicate. (Notă: Dacă fiecare dintre tranzacţiile implicate în planificare păstrează consistenţa bazei de date atunci fiecare planificare serializabilă va păstra consistenţa acesteia) 5

Serializabilitate Obiectivul serializabilităţii este găsirea unei planificări non-seriale care permite execuţia concurentă a tranzactiilor fără ca acestea să interfereze, şi astfel să conducă la o stare a unei baze de date la care se poate ajunge şi printr-o execuţie serială. Garantarea serializabilităţii tranzacţiilor concurente este importantă deoarece previne apariţia inconsistenţelor generate de interferenţa tranziţiilor. 6

Planificarea tranzacţiilor Verificarea serializabilităţii: care sunt acţiunile ce nu se pot interschimba într-o tranzacţie? Acţiunile aparţinând aceleiaşi tranzacţii Acţiuni aplicate de diferite tranzacţii aceluiaşi obiect, dacă cel puţin una dintre ele este o operaţie de write. (acţiuni conflictuale!) 7

Planificarea tranzacţiilor 2 planificări sunt conflict-echivalente dacă: Implică acţiunile aceloraşi tranzacţii Fiecare pereche de acţiuni conflictuale este ordonată în acelaşi mod Planificarea S este conflict serializabilă dacă S e conflict echivalentă cu o planificare serială

Conflict-serializabilitate T 1 T 2 T 3 W 1 (x) W 1 (y) W 1 (z) R 2 (x) W 2 (y) R 3 (z) W 3 (y) S conf W 3 (z) conflict R 2 (x) W 2 (y) W 3 (y) R 3 (z) W 3 (z) W 3 (y) T 1 T 2 T 3 W 1 (x) W 1 (y) W 1 (z) R 2 (x) W 2 (y) R 3 (z) W 3 (y) S ser W 3 (z) conflict R 2 (x) W 2 (y) W 3 (y) R 3 (z) W 3 (z) W 3 (y) Plan serial 9

Conflict-serializabilitate Graf de precedenţă: Graf orientat Un nod per tranzacţie Arc între T i şi T j dacă o acțiune/operație de citire/modificare din T j se realizează după o acșiune/operație conflictuală din T i. Teoremă : O planificare este conflictserializabilă dacă şi numai dacă graful său de precedendenţă nu conține circuite

Exemplu Planificare ce nu este conflict-serializabilă: T1: R(A), W(A), R(B), W(B) T2: R(A), W(A), R(B), W(B) T1 A T2 Graf de precedenţă B Graful conţine un circuit. Rezultatul lui T1 depinde de T2, şi invers.

Algoritm de Testare a Conflict-Serializabilităţii lui S 1. Pentru fiecare tranzacţie T i din S de crează un nod etichetat T i în graful de precedenţă. 2. Pentru fiecare S unde T j execută un Read(x) după un Write(x) executat de T i crează un arc (T i,t j ) în graful de precedenţă 3. Pentru fiecare caz în S unde T j execută un Write(x) după un Read(x) executat de T i crează un arc (T i,t j ) în graful de precedenţă 4. Pentru fiecare caz în S unde T j execută un Write(x) după un Write(x) executat de T i crează un arc (T i,t j ) în graful de precedenţă 5. S este conflict serializabil ddacă graful de precedenţă nu are circuite

view - serializabilitate Planificările S 1 şi S 2 sunt view-echivalente : Dacă T i citeşte valoarea iniţială a lui A in S 1, atunci T i de asmenea citeşte valoarea iniţială a lui A in S 2 Dacă T i citeşte valoarea lui A modificata de T j in S 1, atunci T i de asmenea citeşte valoarea lui A modificata de T j in S 2 Dacă T i modifica valoarea finala a lui A in S 1, atunci T i de asemenea modifica valoarea finala a lui A in S 2 T1: R(A) W(A) T2: W(A) T3: W(A) T1: R(A),W(A) T2: W(A) T3: W(A) 13

Planificarea tranzacţiilor Toate planificarile Planificari serializabile Planificari view serializabile Planificari conflict serializabile Planificari seriale

Serializabilitate în practică In practică, un SGDB nu testează serializabilitea unei planificări date. Acest lucru nu este practic deoarece intercalarea operaţiilor mai multor tranzacţii concurente poate fi dictată de sistemul de operare şi prin urmare este dificil de impus. Abordarea DBMS este să folosească protocoale specifice care sunt cunoscute că generează planificări serializabile. Aceste protocoale pot afecta gradul de concurenţă, însă elimină cazurile conflictuale. 15

Executarea tranzacţiilor 16

Phantom Reads O tranzacţie re-execută o interogare şi găseşte că o altă tranzacţie comisă a inserat înregistrări adiţionale ce satisfac condiţiile interogării Dacă înregistrările au fost modificate sau şterse, este vorba de conflictul unrepeatable read Exemplu: T 1 execută select * from Students where age < 25 T 2 execută insert into Students values(12,'jim', 23, 7) T 2 execută comit T 1 execută select * from Students where age < 25 17

Planificări recuperabile Într-o planificare recuperabilă tranzacţiile poat doar citi data care a fost deja comisă Există posibilitatea apariţiei blind write Care ar trebui sa fie valoarea lui A dupa abort?? 18

Planificare recuperabilă O planificare este recuperabilă dacă pentru oricare tranzacţie T comisă, comiterea lui T se efectuează după comiterea tuturor tranzacţiilor de la care T a citit un element. 19

Controlul concurenţei bazat pe blocări Blocările sunt utilizate pentru a garanta planificări recuperabile/serializabile Un protocol de blocare este un set de reguli urmate de fiecare tranzacţie (fiind impuse de SGBD) pentru a se asigura că, chiar şi în situaţiile în care instrucţiunile tranzactiilor ar putea fi intercalate, efectul final este identic cu cel al unei executări seriale a tranzacţiilor. Se utilizează blocări partajate şi exclusive 20

Definiţii Blocare: O metodă utilizată pentru controlul accesului concurent la date. Atunci când o tranzacţie accesează un obiect al bazei de date, blocarea poate proteja obiectul respectiv de a fi accesat de o altă tranzacţie pentru a preveni obţinerea de rezultate incorecte. Blocare partajată (shared sau read lock): Dacă o tranzacţie blochează un obiect in mod partajat, ea poate citi acel obiect dar nu il poate modifica. Blocare exclusivă (exclusive sau write lock): Dacă o tranzacţie blochează un obiect in mod exclusiv aceasta poate citi şi modifica valoarea obiectului.

Algoritmi bazaţi pe blocări Tranzacţiile indică intenţia de a bloca un obiect planificatorului (lock manager). Fiecare tranzacţie care accesează un obiect pentru a-l citi sau modifica, trebuie mai întâi să blocheze obiectul respectiv. O tranzacţie blochează un obiect până când il eliberează explicit. Conflicte între blocările partajate şi exclusive: Shared Exclusive Shared Da Nu Exclusive Nu Nu 22

Protocol de blocare în două faze 2PL: O tranzacţie urmează protocolul 2PL dacă toate operaţiile de blocare preced prima operaţie de deblocare în cadrul tranzacţiei. Faza 1 se numeşte faza de creştere, aici fiind solicitate toate blocările Faza 2 se numeşte faza de descreştere şi sunt eliberate toate obiectele blocate în faza anterioară 23

Protocol strict de blocare în două faze Strict 2PL: Toate blocările sunt menţinute de către tranzacţie până imediat înainte de commit Protocolul Strict 2PL permite doar planificări serializabile 24

Gestionarea blocărilor Cererile de blocare şi deblocare de obiecte sunt gestionate de modulul de lock management Tabelă de blocări : Tranzacţiile care au cel puţin o blocare Tipul de blocare (shared sau exclusive) Pointer către o coadă de cereri de blocare Operaţiile de blocare şi deblocare trebuie să fie atomice 25

Deadlock Deadlock: Ciclu de tranzacţii, fiecare aşteptând eliberarea unui obiect blocat de celelalte tranzacţii. O tranzacţie este în deadlock dacă nu mai poate continua executarea acţiunilor sale fără o intervenţie externă. Algoritmii de control a concurenţei pe bază de blocări pot cauza deadlock-uri. Metode de gestionarea deadlock-urilor: Prevenire (garantează că nu apar deadlock-uri sau le anticipează) Detectare (permit apariţia deadlock-urilor şi le rezolvă atunci când apar) 26

Exemplu de deadlock T1 begin-transaction Write-lock(A) Read(A) A=A-100 Write(A) Write-lock(B) Wait Wait T2 begin-transaction Write-lock(B) Read(B) B=B*1.06 Write(B) write-lock(a) Wait Wait 27

Prevenire deadlock Atribuie priorităţi bazate pe timestamp. (tranzacţiile mai vechi au prioritatea cea mai mare) Dacă T i doreşte acces la un obiect blocat de T j, sunt posibile două politici: Wait-Die: Dacă T i are prioritate mai mare, T i aşteaptă după T j ; altfel T i se termină Wound-wait: Dacă T i are prioritate mai mare, T j se termină; altfel T i aşteaptă Dacă o tranzacţie eliminată se reporneşte 28 ulterior, va avea timestamp-ul original

Deadlock-urile şi expirarea timpului O metodă simplă de prevenire a deadlock-urilor se bazează pe expirarea timpului de aşteptare după o resursă blocată După cererea unei blocări, o tranzacţie aşteaptă o perioadă de timp. Dacă obiectul aşteptat nu se deblochează după o anumită perioadă, tranzacţia este oprită şi repornită. Este o soluţie foarte simplă şi practică adoptată de multe SGBD-uri. 29

Detectarea deadlock-ului Se crează un graf de aşteptare: Nodurile sunt tranzacţii Există un arc de la T i la T j dacă T i aşteaptă după T j să elibereze un obiect blocat Dacă este un circuit în acest graf atunci a apărut un deadlock. Periodic SGBD verifică dacă au apărut circuite în graful de aşteptare 30

Detectare deadlock Exemplu: T1: S(A), R(A), S(B) T2: X(B),W(B) X(C) T3: S(C), R(C) X(A) T4: X(B) T1 T2 T1 T2 T4 T3 T4 T3 31

Recuperarea după deadlock Cum se alege tranzacţia victimă a unui deadlock? Durata execuţiei unei tranzacţii Numărul obiectelor modificate de către tranzacţie Numărul obiectelor ce urmează să fie modificate de către tranzacţie Politica de alegere a victimei trebuie să aibă în vedere echitatea: să nu fie aleasă de fiecare dată aceeaşi tranzacţie ca victimă 32