SlideServe
Menu
Préférences
© SlideServe · v2026

Optimistic Concurrency Control

oliver-cameron avatar
6 diapositives · 271 Views · Nov 07, 2014

Optimistic Concurrency Control . 6.830 / 6.814 Lecture 14 10/27/2014. OCC Runtime. twrite ( n,i,v ): if n not in write_set // never written, make copy m = copy(n); copies[n] = m; write_set = write_set union {n}; write(copies[n], i , v))) tread ( n,i ):

Optimistic Concurrency Control - slide 1
01 / 6Optimistic Concurrency Control
1 / 17

Télécharger la présentation

Optimistic Concurrency Control
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Optimistic Concurrency Control 6.830 / 6.814 Lecture 14 10/27/2014

  2. OCC Runtime twrite(n,i,v): if n not in write_set // never written, make copy m = copy(n); copies[n] = m; write_set = write_set union {n}; write(copies[n], i, v))) tread(n,i): read_set = read_set union {n}; if n in write_set return read(copies[n],i); else returnread(n,i);

  3. Validation Rules When Tjcompletes its read phase, require that for all Ti < Tj, one of the following conditions must be true for validation to succeed (Tj to commit): • Ti completes its write phase before Tj starts its read phase • W(Ti) does not intersect R(Tj), and Ti completes its write phase before Tj starts its write phase. • W(Ti) does not intersect R(Tj) or W(Tj), and Ti completes its read phase before Tj completes its read phase. • W(Ti) does not intersect R(Tj) or W(Tj), and W(Tj) does not intersect R(Ti) [no conflicts] These rules will ensure serializability, with Tj being ordered after Ti with respect to conflicts

  4. Condition 1 Ti completes its write phase before Tj starts its read phase Read Validate Write Ti Read Validate Write Tj Time Don't overlap at all.

  5. Condition 2 W(Ti) does not intersect R(Tj), and Ti completes its write phase before Tj starts its write phase. W(Ti) ∩ R(Tj) = { } R(Ti) ∩ W(Tj) ≠ { } W(Ti) ∩ W(Tj) ≠ { } Read Validate Write Ti Read Validate Write Tj Time Tj doesn’t read anything Ti wrote. Anything Tj wrote that Ti also wrote will be installed afterwards. Anything Ti read will not reflect Tjs writes

  6. Condition 3 W(Ti) does not intersect R(Tj) or W(Tj), and Ti completes its read phase before Tj completes its read phase. W(Ti) ∩ R(Tj) = { } R(Ti) ∩ W(Tj) ≠ { } W(Ti) ∩ W(Tj) = { } Read Validate Write Ti Read Validate Write Tj Time Tj doesn’t read or write anything Ti wrote (but Ti may read something Tj writes). Ti definitely won’t see any of Tj’s writes, because it finishes reading before Tj starts validation, so Ti ordered before Tj. Ti will always complete its read phase before Tj b/c timestamps assigned after read phase