1 / 48

Coarse-Grained Transactions

Coarse-Grained Transactions. Maurice Herlihy Brown University Joint work with Eric Koskinen and Matthew Parkinson   (POPL 10). Skew Heaps. Tree with “heap” property. 0. 1. 2. 3. 4. Concurrent Skew Heap. Insert me!. Insert me!. 6. 0. 2. 1. 3. 4. 5. Concurrent Skew Heap. 2. 6.

malini
Download Presentation

Coarse-Grained Transactions

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Coarse-Grained Transactions Maurice Herlihy Brown University Joint work with Eric Koskinen and Matthew Parkinson  (POPL 10)

  2. Skew Heaps Tree with “heap” property 0 1 2 3 4 TMW April 2010

  3. Concurrent Skew Heap Insert me! Insert me! 6 0 2 1 3 4 5 TMW April 2010

  4. Concurrent Skew Heap 2 6 0 Lock parent Swap R & L 1 3 4 5 TMW April 2010

  5. Concurrent Skew Heap 2 6 0 Unlock parent 1 3 4 5 Lock right child TMW April 2010

  6. Concurrent Skew Heap No global rebalancing 6 0 1 3 Good amortized performance 4 5 2 Good concurrency TMW April 2010

  7. Transactional Skew Heap Insert me! Insert me! 6 0 2 1 3 4 5 TMW April 2010

  8. Transactional Skew Heap Good concurrency with locking 2 6 0 Write-write conflict! I wrote Not with transactions … 1 3 0 4 5 Confusion between thread-level & transaction-level synchronization TMW April 2010

  9. Coarse-Grained Synchronization Synchronize on high-level operations, Like add(), remove(), etc. … Not low-level reads and writes Pessimistic: update in place, undo on abort Optimistic: update private copy, apply changes on commit But what is the meaning ofconflict? TMW April 2010

  10. Pessimistic Boosting Undo Logs transactions Abstract locks Black-box linearizable data object TMW April 2010

  11. Pessimistic Boosting add(x) Undo Logs transactions Abstract locks Black-box linearizable data object TMW April 2010

  12. Pessimistic Boosting add(x) Undo Logs transactions Abstract locks Black-box linearizable data object TMW April 2010

  13. Pessimistic Boosting add(x) Undo Logs transactions Abstract locks Black-box linearizable data object TMW April 2010

  14. Pessimistic Boosting add(x) rem(x) x Undo Logs transactions Abstract locks Black-box linearizable data object TMW April 2010

  15. Pessimistic Boosting add(x) rem(x) add(y) x y Undo Logs transactions Abstract locks Black-box linearizable data object TMW April 2010

  16. Pessimistic Boosting add(x) rem(x) member(x) x Undo Logs transactions Abstract locks Black-box linearizable data object TMW April 2010

  17. Pessimistic Boosting Thread-safe base object Log Inverses Updated in place Conflicting operations blocked by abstract locks What does it mean for operations to conflict? TMW April 2010

  18. Optimistic Boosting Black-box linearizable data object TMW April 2010

  19. Optimistic Boosting private copies Black-box linearizable data object TMW April 2010

  20. Optimistic Boosting redo logs private copies Black-box linearizable data object TMW April 2010

  21. Optimistic Boosting add(x) redo logs private copies Black-box linearizable data object TMW April 2010

  22. Optimistic Boosting add(x) redo logs add(x) private copies x Black-box linearizable data object TMW April 2010

  23. Optimistic Boosting add(y) add(x) redo logs add(x) add(y) private copies x y Black-box linearizable data object TMW April 2010

  24. On Commit redo logs add(x) add(y) add(x) private copies x y add(x) Black-box linearizable data object TMW April 2010

  25. No conflict, apply updates to my copy On Commit redo logs add(x) add(y) add(x) private copies x x y add(x) x Black-box linearizable data object TMW April 2010

  26. On Commit Different physical values, Same logical values add(x) add(y) add(x) x x y add(x) x TMW April 2010

  27. Conflict! Abort & restore my copy On Commit redo logs add(x) rem(x) add(x) private copies x add(x) x Black-box linearizable data object TMW April 2010

  28. Optimistic Boosting Thread-local object copies Deferred operatons kept in redo log No inverses On commit, broadcast deferred operations To other transactions, public copy Transactions snoop on broadcast, Abort if conflict detected What does it mean for operations to conflict? TMW April 2010

  29. time Left-Movers legal history TMW April 2010

  30. time Left-Movers If and are adjacent, Ok to move earlier TMW April 2010

  31. time Left-Mover Example: Semaphore dec() inc() dec() 1 0 1 0 TMW April 2010

  32. time Inc() is Left-mover WRT Dec() inc() dec() dec() 1 0 1 1 0 2 1 1 0 TMW April 2010

  33. time Left-Mover Example: Semaphore Same sequence of calls (results unaffected) inc() dec() dec() 1 0 1 1 0 2 1 1 0 TMW April 2010

  34. time Left-Mover Example: Semaphore inc() dec() dec() 3 3 2 3 2 4 3 3 2 Same final state TMW April 2010

  35. dec() inc() dec() time 0 1 0 Left-Mover Counter-example 1 TMW April 2010

  36. dec() inc() dec() time 0 1 0 Dec() not Left-Mover WRT Inc() -1 1 TMW April 2010

  37. time Right-Movers legal history TMW April 2010

  38. time Right-Movers If and are adjacent, Ok to move later TMW April 2010

  39. time Commutativity If and are adjacent, Ok to swap TMW April 2010

  40. time Pessimistic Semantics(modify shared state in place) Txn A beg cmt Txn B beg Pessimistic Commit: Move Left of pending What Theory? Sept 2009

  41. time Pessimistic Semantics(modify shared state in place) Txn A beg abt Txn B beg What Theory? Sept 2009

  42. time Pessimistic Semantics(modify shared state in place) Txn A beg 2 3 1 3 2 4 4 1 Txn B beg Pessimistic Abort: Move Right of pending Pessimistic Abort: Pending ops move Left What Theory? Sept 2009

  43. Pessimistic Semantics(modify shared state in place) • Operations must be LEFT moversw.r.t. other pending operations • On commit, move operations LEFT • On abort, move operations RIGHT (free)and append inverses What Theory? Sept 2009

  44. time Optimistic Semantics(modify local copies; merge) Txn A beg cmt Txn B cmt Optimistic Commit: Move Right of committed What Theory? Sept 2009

  45. time Optimistic Semantics(modify local copies; merge) Txn A beg abt Txn B cmt Optimistic Abort: Discard Operations What Theory? Sept 2009

  46. Optimistic Semantics(modify local copies; merge) • Operations must be RIGHT moversw.r.t. concurrently committed operations • On commit, move operations RIGHT • Abort if concurrent non-LM op • On abort, discard local changes What Theory? Sept 2009

  47. Two Execution Models Algebraic Abstract Properties What Theory? Sept 2009

  48. Challenges • Automation? • Theorem proving • Model checking • Compiler & Language support? • Implementation … TMW April 2010

More Related