concurrency 2pl and 2pc today s topics
play

Concurrency, 2PL, and 2PC Todays Topics Continue concurrency - PowerPoint PPT Presentation

Concurrency, 2PL, and 2PC Todays Topics Continue concurrency Review two-phase locking (2PL) 2PL with shared locks Deadlocks Timestamped concurrency Implementing distributed transactions Transaction manager


  1. Concurrency, 2PL, and 2PC

  2. Today’s Topics • Continue concurrency • Review two-phase locking (2PL) • 2PL with shared locks • Deadlocks • Timestamped concurrency • Implementing distributed transactions • Transaction manager • Two-phase commit (2PC)

  3. Recap from last class Serial Equivalence: combined T1 T2 effect of two (or more) tx is read X equivalent to a serial execution read Y write Z read A write Y write W write Z

  4. Recap from last class Serial Equivalence: combined T1 T2 effect of two (or more) tx is read X equivalent to a serial execution read Y Conflicts are operations in two tx write Z read A on same data whose combined effect depends on order write Y write W write Z

  5. Recap from last class Serial Equivalence: combined T1 T2 effect of two (or more) tx is read X equivalent to a serial execution read Y Conflicts are operations in two tx write Z read A on same data whose combined effect depends on order write Y write W • Read/write or write/write write Z

  6. Recap from last class Serial Equivalence: combined T1 T2 effect of two (or more) tx is equivalent to a serial execution read X Conflicts are operations in two tx read Y on same data whose combined write Z read A effect depends on order write Y If all conflicts follow transaction ordering, execution is serially write W equivalent write Z

  7. Recap from last class Serial Equivalence: combined T1 T2 effect of two (or more) tx is read X equivalent to a serial execution read Y Conflicts are operations in two tx write Z on same data whose combined effect depends on order write W If all conflicts follow transaction read A ordering, execution is serially write Y equivalent write Z

  8. Recap from last class Serial Equivalence: combined effect T1 T2 of two (or more) tx is equivalent to a lock X; read X serial execution lock Y; read Y Conflicts are operations in two tx on lock Z; write Z lock A; read A same data whose combined effect try lock Y… depends on order lock W; write W If all conflicts follow transaction ordering, execution is serially commit; unlock all equivalent lock Y; write Y Two-phase locking (2PL): lock lock Z; write Z variable before access, unlock only a commit/abort time

  9. Exclusive locks: missed parallelism T1 T2 read A read A read B read B write C write D

  10. 2P Locking: Non-exclusive lock (per object) Lock set Lock Action • A read lock is promoted to a write requested lock when the transaction needs write access to the same object. Read Read OK • A read lock shared with other transactions ʼ read lock(s) cannot be Read Write Wait promoted. Transaction waits for other read locks to be released. Write Read Wait • Cannot demote a write lock to read lock during transaction – violates the 2P principle Write Write Wait 2019-03-26 Nikita Borisov — U. Illinois 36

  11. Locking Procedure in 2P Locking • When an operation accesses an object: • if the object is not already locked, lock the object in the lowest appropriate mode & proceed. • if the object has a conflicting lock by another transaction, wait until object has been unlocked. • if the object has a non-conflicting lock by another transaction, share the lock & proceed. • if the object has a lower lock by the same transaction, • if the lock is not shared, promote the lock & proceed • else, wait until all shared locks are released, then lock & proceed • When a transaction commits or aborts: • release all locks that were set by the transactions 2019-03-26 Nikita Borisov — U. Illinois 37

  12. R/W 2PL T1: add 1% dividend to C based on balances of A and B T2: transfer 100 from A to B Read Lock A Read Lock A x := A.getBalance() t := A.getBalance() Read Lock B Read Lock B y := B.getBalance() u := B.getBalance() Read Lock C Try to promote A to write lock z := C.getBalance() Promote C to write C.setBalance((x+y)*0.01+z) Unlock A, B, C Promote A to write lock A.setBalance(t-100) Promote B to write lock B.setBalance(u+100) Unlock A, B

  13. Why lock promotion is necessary T1: add 1% dividend to C based on balances of A and B T2: transfer 100 from A to B Read Lock A Read Lock A x := A.getBalance() t := A.getBalance() Read Lock B Read Lock B y := B.getBalance() u := B.getBalance() Read Lock C Try to promote A to write lock z := C.getBalance() Promote C to write C.setBalance((x+y)*0.01+z) Unlock A, B, C Promote A to write lock A.setBalance(t-100) Promote B to write lock B.setBalance(u+100) Unlock A, B

  14. Why we need lock promotion T1: T2: acquire R-lock on a a.read() acquire R-lock on a a.read() release R-lock on a release R-lock on a acquire W-lock on a a.write() commit release W-lock on a acquire W-lock on a a.write() commit release W-lock on a 2019-03-26 Nikita Borisov — U. Illinois 40

  15. Deadlocks • Necessary conditions for deadlocks • Non-shareable resources (locked objects) • No preemption on locks • Hold & Wait • Circular Wait (Wait-for graph) Held by Held by Wait for Held by Wait for Wait for W ... A A V T T U B B ... U Wait for Wait for Held by Held by Wait for Held by 2019-03-26 Nikita Borisov — U. Illinois 41

  16. Deadlock Resolution Using Timeout Transaction T Transaction U Operations Locks Operations Locks write lock a a.deposit(100); write lock b b.deposit(200) b.withdraw(100) a.withdraw(200); waits for U ’s waits for T ’s lock on b lock on a (timeout elapses) T ’s lock on A becomes vulnerable, unlock a , abort T a.withdraw(200); write locks a commit unlock a, b , 2019-03-26 Nikita Borisov — U. Illinois 42

  17. Deadlock Strategies • Timeout: how to set value? • Too large -> long delays • Too small -> false positives • Deadlock prevention • Lock all objects at transaction start • Use lock ordering • Deadlock Detection (later) • Maintain wait-for graph, look for cycle • Abort one transaction in cycle 2019-03-26 Nikita Borisov — U. Illinois 43

  18. Identify all conflicts T1 T2 read X read X write Y write Y read Z read A read W read B write V write C

  19. Timestamp Ordering • Assign each transaction a unique timestamp (ts) T (1) U (2) V (3) • Serialize transactions according to read X (X.rts=1) timestamps • Keep track of timestamp last write Y(Y.wts=1) transaction to read and write an read X (X.rts=2) object read Y (Y.rts = 3) • Maintain two invariants: write X (X.wts=3) • If T writes O, last read and write timestamp must be lower than T’s read Y (Y.rts=3) • If T reads O, last write timestamp must be lower than T write X: abort! • If T tries to read/write object with higher timestamp, abort and rollback 45

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend