Transactional Memory
Our Vision for the Future
Our Vision for the Future
Locking
Coarse-Grained Locking
Fine-Grained Locking
Locks are not Robust
Locking Relies on Conventions
Simple Problems are hard
Locks Not Composable
Locks Not Composable
Locks Not Composable
Monitor Wait and Signal
Wait and Signal do not Compose
The Transactional Manifesto
Transactions
Atomic Blocks
Atomic Blocks
A Double-Ended Queue
A Double-Ended Queue
A Double-Ended Queue
Warning
Composition?
Composition?
Conditional Waiting
Composable Conditional Waiting
Hardware Transactional Memory
HW Transactional Memory
Transactional Memory
Transactional Memory
Transactional Memory
Rewind
Transaction Commit
Not all Skittles and Beer
HTM Strengths & Weaknesses
HTM Strengths & Weaknesses
HTM Strengths & Weaknesses
Composition
Simple Lock-Based STM
Synchronization
STM: Transactional Locking
Reading an Object
To Write an Object
To Commit
Problem: Internal Inconsistency
Internal Consistency
Solution: The Global Clock
Read-Only Transactions
Read-Only Transactions
Read-Only Transactions
Read-Only Transactions
Read-Only Transactions
Regular Transactions
Regular Transactions
On Commit
On Commit
On Commit
On Commit
On Commit
TM Design Issues
Granularity
Direct/Deferred Update
Conflict Detection
Conflict Detection
Contention Management & Scheduling
Contention Manager Strategies
I/O & System Calls?
I/O & System Calls
Exceptions
Exceptions
Exceptions
Unhandled Exceptions
Nested Transactions
Nested Transactions
Remember 1993?
Citation Count
Second Opinion
Hatin’ on TM
Hatin’ on TM
Hatin’ on TM
Hatin’ on TM
Gartner Hype Cycle
I, for one, Welcome our new Multicore Overlords …
I, for one, Welcome our new Multicore Overlords …
I, for one, Welcome our new Multicore Overlords …
I, for one, Welcome our new Multicore Overlords …
Thanks ! תודה