SlideShare a Scribd company logo
1 of 93
Gegevensbanken 2010 Begrippen van transactieverwerking II: technieken voor concurrentiecontrole  en herstel Bettina Berendt www.cs.kuleuven.be/~berendt
Concurrentiecontrole  en herstel :  Motivatie & Samenvatting
Waar zijn we? transactions query processing indexing II and higher-dimensional structures Les Nr. wie wat 1 ED intro, ER 2 ED EER 3 ED relational model 4 ED mapping EER2relational 5 KV relational algebra, relational calculus 6 KV SQL 7 KV vervolg SQL 8 KV demo Access, QBE, JDBC 9 KV functional dependencies and normalisation 10 KV functional dependencies and normalisation 11 BB file structures and hashing 12 BB indexing I 13 BB 14 BB 15 BB 16 BB transactions II: concurrentie & herstel 17 BB Data mining (and a bit on d. warehousing) 18 ED XML, oodb, multimedia db Fysisch model / vragen
Concurrentiecontrole t Nog een plaats! U heeft hem reserveer! Wacht even Sorry ...
Herhaling:  Gewenste eigenschappen van transacties ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],   concurrentie-controle
Herhaling:  Testen of garanderen van serialiseerbarheid ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Herstel t (plan: commit) rollback Nog een plaats! reserveer!
Herhaling:  Gewenste eigenschappen van transacties ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],   herstel
Herhaling:  Mogelijke falingen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],   REDOs + UNDOs      Backup + REDOs
Agenda I Vergrendeling (locking) Tijdstempels Multiversietechnieken Optimistische concurrentiecontrole Granulariteit van items
Agenda I Vergrendeling (locking) Tijdstempels Multiversietechnieken Optimistische concurrentiecontrole Granulariteit van items
Vergrendeling ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Binaire grendels ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Binaire grendels: lock en unlock ,[object Object],[object Object],[object Object],lock_item(X): B :  als  LOCK(X) = 0  dan  LOCK(X) := 1 anders wacht tot LOCK(X) = 0; spring naar  B unlock_item(X): LOCK(X) := 0; als  er transacties aan het wachten zijn op X: dan  maak één van die transacties wakker
Regels voor vergrendeling: Elke transactie T moet volgende regels volgen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Lees- / schrijf-vergrendeling ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
read_lock(X): B :  als  LOCK(X)="unlocked"  dan   LOCK(X):="read-locked"; aantal_reads(X) := 1 anders als  LOCK(X) = "read-locked" dan   aantal_reads(X) := aantal_reads(X)+1 anders   wacht tot LOCK(X)="unlocked"; spring naar  B write_lock(X): B : als   LOCK(X)="unlocked" dan   LOCK(X) := "write-locked" anders   wacht tot LOCK(X)="unlocked"; spring naar  B
unlock_item(X): B :  als  LOCK(X)="write-locked"  dan   LOCK(X):="unlocked"; als  er transacties zijn die wachten op X: dan  maak 1 ervan wakker anders als  LOCK(X) = "read-locked" dan   aantal_reads(X) := aantal_reads(X)-1; als  aantal_reads(X) = 0  dan LOCK(X) := "unlocked" als  er transacties wachten op X: dan  maak 1 ervan wakker
Regels voor vergrendeling  (bij lees / schrijf-vergrendeling):   Elke transactie T moet volgende regels volgen: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Afzwakken van regels ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Lees-/schrijf-vergrendeling    serialiseerbarheid? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Voorbeeld
Twee-fasen-vergrendeling ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Voorbeeld: verschovene operaties T1  T2 read_lock(Y);  read_lock(X); read_item(Y);  read_item(X); write_lock(X) ;  write_lock(Y) ; unlock(Y);  unlock(X); read_item(X);  read_item(Y); X:=X+Y;  Y := X+Y; write_item(X);  write_item(Y); unlock(X);  unlock(Y); T1:write_lock(x) verschoven tot voor unlock(Y) T2:write_lock(Y) verschoven tot voor unlock(X)
Voorbeeld: de twee fasen
Deadlock ,[object Object],[object Object],[object Object]
Varianten van twee-fasen-vergrendeling ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Deadlock-vermijdende protocollen ,[object Object],[object Object],[object Object],[object Object],[object Object]
Agenda I Vergrendeling (locking) Tijdstempels Multiversietechnieken Optimistische concurrentiecontrole Granulariteit van items
Deadlock-preventie met tijdstempels ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Vordelen en nadelen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Deadlock-preventie zonder tijdstempels ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Deadlock-detectie ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Starvation  (“verhongeren”) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Concurrentiecontrole d.m.v. tijdstempels ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Basis tijdstempelordeningsalgoritme Transactie T voert  write_item(X)  uit: als  read_TS(X) > TS(T) of write_TS(X) > TS(T): (write_item komt te laat, jongere transacties hebben intussen al een oudere waarde van X gelezen of een jongere geschreven) breek T af en maak T ongedaan anders   write_item(X);  write_TS(X) := TS(T) Transactie T voert  read_item(X)  uit: als  write_TS(X) > TS(T): (te lezen waarde is intussen al overschreven door jongere transactie) breek T af en maak T ongedaan anders   read_item(X);  read_TS(X) := max(TS(T), read_TS(X))
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],Transactie T voert  write_item(X)  uit: als  read_TS(X) > TS(T):  (write_item komt te laat) breek T af en maak T ongedaan anders als  write_TS(X)>TS(T):  (write_item is niet meer relevant) voer de write_item niet uit maar ga gewoon door (evt. problemen hierdoor veroorzaakt worden ontdekt door andere regels) anders   write_item(X);  write_TS(X) := TS(T)
Agenda I Vergrendeling (locking) Tijdstempels Multiversietechnieken Optimistische concurrentiecontrole Granulariteit van items
Multiversie-concurrentiecontrole ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Transactie T wil een  write_item(X)  uitvoeren: zij X i  de versie van X met de grootste write_TS(X i ) <= TS(T) als  TS(T) <  read_TS(X i )  (d.w.z. versie X i  zou dan moeten gelezen   zijn nadat T geschreven heeft) dan  breek T af en maak T ongedaan  anders   creëer nieuwe versie X j  van X read_TS(X j ) := TS(T) write_TS(X j ) := TS(T) Transactie   T wil een  read_item(X)  uitvoeren: zoek de versie i van X met hoogste write_TS(X i ) <= TS(T) geef de waarde van X i  terug aan T
[object Object],[object Object],[object Object]
Agenda I Vergrendeling (locking) Tijdstempels Multiversietechnieken Optimistische concurrentiecontrole Granulariteit van items
Optimistische concurrentiecontrole ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Implementering van optimistische concurrentiecontrole met tijdstempels ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Agenda I Vergrendeling (locking) Tijdstempels Multiversietechnieken Optimistische concurrentiecontrole Granulariteit van items
Granulariteit van gegevensitems ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
vergrendeling met meervoudige granulariteitsniveaus ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Intention locks (I) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Intention locks (II) compatibiliteitsmatrix: Geeft aan of een transactie T een knooppunt kan locken  indien daar al een lock op staat S  shared lock X  exclusive lock
Meervoudige granulariteitsvergrendelingsprotocol ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],compatibiliteitsmatrix: S  shared lock X  exclusive lock  IS  intention shared lock IX  intention exclusive lock SIX shared-intention- exclusive lock
[object Object],[object Object],[object Object],[object Object],[object Object],aanp. r 111 aanp. r 211 aanp. p 12 lees f 2 lees r 11j aanp. r 111 2
Concurrentiecontrole in indexen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Mogelijke oplossingen (I) ,[object Object],[object Object],[object Object],[object Object]
Mogelijke oplossingen (II) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Einde:  Agenda I Vergrendeling (locking) Tijdstempels Multiversietechnieken Optimistische concurrentiecontrole Granulariteit van items
Agenda II Herstel: begrippen Technieken voor uitgestelde aanpassing Technieken voor onmiddellijke aanpassing Schaduwpaginering
Agenda II Herstel: begrippen Technieken voor uitgestelde aanpassing Technieken voor onmiddellijke aanpassing Schaduwpaginering
Herstel: begrippen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Twee soorten hersteltechnieken  (bij niet-catastrofale falingen) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Cache: DBMS systemen gebruiken cache ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Log ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Terminologie betreffende schrijven van cache blokken naar schijf ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Checkpoints en systeemlog ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Transactie-rollback ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
COMMIT? COMMIT? Voorbeeld
Agenda II Herstel: begrippen Technieken voor uitgestelde aanpassing Technieken voor onmiddellijke aanpassing Schaduwpaginering
Hersteltechnieken gebaseerd op uitgestelde aanpassing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Single-user omgeving procedure RDU_S ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],procedure  RDU_S:  /* Recovery using Deferred Update - Single user */ REDO alle write_items van gecommitte transacties  in de volgorde  zoals ze in de log staan herstart alle actieve transacties procedure  REDO (write_opdracht): lees bijhorende log-inschrijving [write_item, T, X, nieuwe_waarde] en zet item X in de gegevensbank gelijk aan nieuwe_waarde
Systeemlog (voorbeeld)
Multi-user omgeving ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],procedure  RDU_M: REDO alle write_items van gecommitte transacties  in de volgorde  zoals ze in de log staan herstart alle actieve transacties
write opdrachten van T 2  en  T 3  worden herdaan T 4  en T 5  worden herstart Multi-user omgeving: voorbeeld
Efficiëntere versie van NO-UNDO / REDO ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RDU_M: vordelen en nadelen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
systeemlog Voorbeeld
Andere transactie-bewerkingen ,[object Object],[object Object],[object Object],[object Object],[object Object]
Agenda II Herstel: begrippen Technieken voor uitgestelde aanpassing Technieken voor onmiddellijke aanpassing Schaduwpaginering
Herstel gebaseerd op onmiddellijke aanpassing ,[object Object],[object Object],[object Object],[object Object]
Single-user omgeving: procedure RIU_S ,[object Object],[object Object],[object Object],[object Object],[object Object],procedure  RIU_S: UNDO alle write_items van de actieve transactie  in omgekeerde  volgorde van voorkomen in de log REDO alle write_items van gecommitte transacties in de volgorde zoals ze in de log voorkomen procedure  UNDO(write_opdracht): bekijk bijhorende log-inschrijving [write_item, T, X, BFIM, AFIM] stel de waarde van X in de gegevensbank gelijk aan BFIM
Multi-user omgeving ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],procedure  RIU_M: UNDO alle write_items van de actieve transacties  in omgekeerde  volgorde van voorkomen in de log REDO alle write_items van gecommitte transacties  in de volgorde zoals ze in de log voorkomen
Agenda II Herstel: begrippen Technieken voor uitgestelde aanpassing Technieken voor onmiddellijke aanpassing Schaduwpaginering
Idee ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Voorbeeld
Voordelen en nadelen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Herstel na een catastrofe ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Vooruitblik Herstel: begrippen Technieken voor uitgestelde aanpassing Technieken voor onmiddellijke aanpassing Schaduwpaginering Data mining (en 2 woorden over data warehousing)
Bronnen ,[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Gegevensbanken 2010 les16

  • 1. Gegevensbanken 2010 Begrippen van transactieverwerking II: technieken voor concurrentiecontrole en herstel Bettina Berendt www.cs.kuleuven.be/~berendt
  • 2. Concurrentiecontrole en herstel : Motivatie & Samenvatting
  • 3. Waar zijn we? transactions query processing indexing II and higher-dimensional structures Les Nr. wie wat 1 ED intro, ER 2 ED EER 3 ED relational model 4 ED mapping EER2relational 5 KV relational algebra, relational calculus 6 KV SQL 7 KV vervolg SQL 8 KV demo Access, QBE, JDBC 9 KV functional dependencies and normalisation 10 KV functional dependencies and normalisation 11 BB file structures and hashing 12 BB indexing I 13 BB 14 BB 15 BB 16 BB transactions II: concurrentie & herstel 17 BB Data mining (and a bit on d. warehousing) 18 ED XML, oodb, multimedia db Fysisch model / vragen
  • 4. Concurrentiecontrole t Nog een plaats! U heeft hem reserveer! Wacht even Sorry ...
  • 5.
  • 6.
  • 7. Herstel t (plan: commit) rollback Nog een plaats! reserveer!
  • 8.
  • 9.
  • 10. Agenda I Vergrendeling (locking) Tijdstempels Multiversietechnieken Optimistische concurrentiecontrole Granulariteit van items
  • 11. Agenda I Vergrendeling (locking) Tijdstempels Multiversietechnieken Optimistische concurrentiecontrole Granulariteit van items
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. read_lock(X): B : als LOCK(X)=&quot;unlocked&quot; dan LOCK(X):=&quot;read-locked&quot;; aantal_reads(X) := 1 anders als LOCK(X) = &quot;read-locked&quot; dan aantal_reads(X) := aantal_reads(X)+1 anders wacht tot LOCK(X)=&quot;unlocked&quot;; spring naar B write_lock(X): B : als LOCK(X)=&quot;unlocked&quot; dan LOCK(X) := &quot;write-locked&quot; anders wacht tot LOCK(X)=&quot;unlocked&quot;; spring naar B
  • 18. unlock_item(X): B : als LOCK(X)=&quot;write-locked&quot; dan LOCK(X):=&quot;unlocked&quot;; als er transacties zijn die wachten op X: dan maak 1 ervan wakker anders als LOCK(X) = &quot;read-locked&quot; dan aantal_reads(X) := aantal_reads(X)-1; als aantal_reads(X) = 0 dan LOCK(X) := &quot;unlocked&quot; als er transacties wachten op X: dan maak 1 ervan wakker
  • 19.
  • 20.
  • 21.
  • 23.
  • 24. Voorbeeld: verschovene operaties T1 T2 read_lock(Y); read_lock(X); read_item(Y); read_item(X); write_lock(X) ; write_lock(Y) ; unlock(Y); unlock(X); read_item(X); read_item(Y); X:=X+Y; Y := X+Y; write_item(X); write_item(Y); unlock(X); unlock(Y); T1:write_lock(x) verschoven tot voor unlock(Y) T2:write_lock(Y) verschoven tot voor unlock(X)
  • 26.
  • 27.
  • 28.
  • 29.
  • 30. Agenda I Vergrendeling (locking) Tijdstempels Multiversietechnieken Optimistische concurrentiecontrole Granulariteit van items
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39. Basis tijdstempelordeningsalgoritme Transactie T voert write_item(X) uit: als read_TS(X) > TS(T) of write_TS(X) > TS(T): (write_item komt te laat, jongere transacties hebben intussen al een oudere waarde van X gelezen of een jongere geschreven) breek T af en maak T ongedaan anders write_item(X); write_TS(X) := TS(T) Transactie T voert read_item(X) uit: als write_TS(X) > TS(T): (te lezen waarde is intussen al overschreven door jongere transactie) breek T af en maak T ongedaan anders read_item(X); read_TS(X) := max(TS(T), read_TS(X))
  • 40.
  • 41.
  • 42. Agenda I Vergrendeling (locking) Tijdstempels Multiversietechnieken Optimistische concurrentiecontrole Granulariteit van items
  • 43.
  • 44. Transactie T wil een write_item(X) uitvoeren: zij X i de versie van X met de grootste write_TS(X i ) <= TS(T) als TS(T) < read_TS(X i ) (d.w.z. versie X i zou dan moeten gelezen zijn nadat T geschreven heeft) dan breek T af en maak T ongedaan anders creëer nieuwe versie X j van X read_TS(X j ) := TS(T) write_TS(X j ) := TS(T) Transactie T wil een read_item(X) uitvoeren: zoek de versie i van X met hoogste write_TS(X i ) <= TS(T) geef de waarde van X i terug aan T
  • 45.
  • 46. Agenda I Vergrendeling (locking) Tijdstempels Multiversietechnieken Optimistische concurrentiecontrole Granulariteit van items
  • 47.
  • 48.
  • 49.
  • 50. Agenda I Vergrendeling (locking) Tijdstempels Multiversietechnieken Optimistische concurrentiecontrole Granulariteit van items
  • 51.
  • 52.
  • 53.
  • 54.
  • 55. Intention locks (II) compatibiliteitsmatrix: Geeft aan of een transactie T een knooppunt kan locken indien daar al een lock op staat S shared lock X exclusive lock
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61. Einde: Agenda I Vergrendeling (locking) Tijdstempels Multiversietechnieken Optimistische concurrentiecontrole Granulariteit van items
  • 62. Agenda II Herstel: begrippen Technieken voor uitgestelde aanpassing Technieken voor onmiddellijke aanpassing Schaduwpaginering
  • 63. Agenda II Herstel: begrippen Technieken voor uitgestelde aanpassing Technieken voor onmiddellijke aanpassing Schaduwpaginering
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 73. Agenda II Herstel: begrippen Technieken voor uitgestelde aanpassing Technieken voor onmiddellijke aanpassing Schaduwpaginering
  • 74.
  • 75.
  • 77.
  • 78. write opdrachten van T 2 en T 3 worden herdaan T 4 en T 5 worden herstart Multi-user omgeving: voorbeeld
  • 79.
  • 80.
  • 82.
  • 83. Agenda II Herstel: begrippen Technieken voor uitgestelde aanpassing Technieken voor onmiddellijke aanpassing Schaduwpaginering
  • 84.
  • 85.
  • 86.
  • 87. Agenda II Herstel: begrippen Technieken voor uitgestelde aanpassing Technieken voor onmiddellijke aanpassing Schaduwpaginering
  • 88.
  • 90.
  • 91.
  • 92. Vooruitblik Herstel: begrippen Technieken voor uitgestelde aanpassing Technieken voor onmiddellijke aanpassing Schaduwpaginering Data mining (en 2 woorden over data warehousing)
  • 93.

Editor's Notes

  1. http://a1.phobos.apple.com/us/r1000/036/Purple/b8/86/d6/mzl.wdgryvsi.320x480-75.jpg http://iconkits.com/images/vip/scope_user_large_preview.png
  2. http://a1.phobos.apple.com/us/r1000/036/Purple/b8/86/d6/mzl.wdgryvsi.320x480-75.jpg http://iconkits.com/images/vip/scope_user_large_preview.png http://www.compu-seite.de/betriebssysteme/bluescreen1.gif
  3. Machtiging = delegation
  4. Machtiging = delegation
  5. Machtiging = delegation
  6. Machtiging = delegation
  7. Machtiging = delegation
  8. Machtiging = delegation
  9. Machtiging = delegation
  10. Machtiging = delegation
  11. Machtiging = delegation
  12. Machtiging = delegation
  13. Machtiging = delegation
  14. Machtiging = delegation
  15. Machtiging = delegation