! Part I: Introduction. ! Part II: Obstruction-free STMs. ! DSTM: an obstruction-free STM design. ! FSTM: a lock-free STM design

Size: px
Start display at page:

Download "! Part I: Introduction. ! Part II: Obstruction-free STMs. ! DSTM: an obstruction-free STM design. ! FSTM: a lock-free STM design"

Transcription

1 genda Designing Transactional Memory ystems Part II: Obstruction-free TMs Pascal Felber University of Neuchatel Part I: Introduction! Part II: Obstruction-free TMs! DTM: an obstruction-free TM design! FTM: a lock-free TM design! L-TM: a time-based TM design ased on joint work with VELOX partners with slides borrowed from several other people! Part III: Lock-based TMs 2/15/11 Transactional Memory: Part II P. Felber 2 Obstruction freedom Why obstruction freedom? ny thread that runs by itself for long enough makes progress vs. Lock freedom ome thread always makes progress! Obstruction freedom argued to be strong enough in practice! Obstruction freedom easier to implement efficiently than lock freedom! First dynamic TM DTM [Herlihy et al., 2003]! No need to know which data will be accessed a priori! -based, Java implementation! Non-blocking (obstruction free)! imple PI Wrapper around ordinary object void begintransaction(); open(tm obj, ED WITE); boolean committransaction(); 2/15/11 Transactional Memory: Part II P. Felber 3 2/15/11 Transactional Memory: Part II P. Felber 4

2 DTM: principle! Problem: update a set of objects atomically! olution:! s accessed indirectly through locators! Transaction state (active, committed, aborted) can be read/updated by other transaction! s must be opened before use! s opened in write mode are only acquired, updates are local until commit! eads are essentially invisible! Incremental validation for consistent reads Why consistent reads?! lthough no damage is done to shared data (consistent writes), inconsistent reads can create program crashes, infinite loops, etc. // Invariant: x + y == 0 // Initially: x = y = 0 TT; a = x; // 0 b = y; // 0 assert(a + b == 0); x = a + 1; // 1 y = b - 1; // -1 OMMIT; // Here: x == 1 && y == -1 TT; a = x; // 0 b = y; // -1 assert(a + b == 0); // Ooops! 2/15/11 Transactional Memory: Part II P. Felber 5 2/15/11 Transactional Memory: Part II P. Felber 6 DTM: data structures DTM: open after commit! Transaction acquires a free object (while opening it) by registering its locator! is free if it does not contain the locator of an active transaction! holds two object versions (old, new) Transaction Old version tatus TIVE OTED OMMITTED data is in new version Transaction 1 Old version New locator Transaction 2 Old version OMMITTED TIVE opy 2/15/11 Transactional Memory: Part II P. Felber 7 2/15/11 Transactional Memory: Part II P. Felber 8

3 DTM: open after abort DTM: conflict management data is in old version Transaction 1 Old version New locator Transaction 2 Old version OTED TIVE opy! onflicts are detected by checking status of owner transaction when opening object! onflicts are handled by a contention manager (M)! Decide which transaction to kill, delay, or let go! To kill a transaction, its status to OTED! M is an independent component (one can register custom Ms)! hoosing the right contention manager is crucial to system throughput 2/15/11 Transactional Memory: Part II P. Felber 9 2/15/11 Transactional Memory: Part II P. Felber 10 DTM: validation, commit, abort! Validation is necessary on open! heck that read versions are still latest! heck that status is still TIVE! ommit requires two phases! Validate read set! state to OMMITTED (atomically update all objects opened in write mode)! Transaction can also abort! state to OTED (atomically release all objects opened in write mode) DTM: obstruction free ny thread that runs by itself for long enough makes progress! transaction T can unilaterally abort other transactions! Hence, T running on its own, can eventually commit 2/15/11 Transactional Memory: Part II P. Felber 11 2/15/11 Transactional Memory: Part II P. Felber 12

4 DTM: costs! Given W objects opened in write mode and in read mode! W + 1! W cloning overhead! O(( + W) ) validation overhead DTM: programming example List public class Node { private int value; private Node next; Node Node Node Node Node MIN MX Non-transactional public Node(int v) { value = v; Transactional public class Node implements TMloneable { private TM next; public void setnext(tm n) { public TM getnext() { public void setvalue(int v) { value = v; public void setnext(node n) { next = n; public int getvalue() { return value; public Node getnext() { return next; public clone() { Node n = new Node(value); n.next = next; return n; 2/15/11 Transactional Memory: Part II P. Felber 13 2/15/11 Transactional Memory: Part II P. Felber 14 DTM: programming example List public class List { private Node head; Node Node Node Node Node MIN MX Non-transactional public List() { Node min = new Node(Integer.MIN_VLUE); Node max = new Node(Integer.MX_VLUE); min.setnext(max); head = min; // Transactional public class List { private TM head; public List() { Node min = new Node(Integer.MIN_VLUE); Node max = new Node(Integer.MX_VLUE); min.setnext(new TM(max)); head = new TM(min); // add(15) DTM: programming example Node Node Non-transactional public boolean add(int v) { Node prev = head; Node next = prev.getnext(); while (next.getvalue() < v) { prev = next; next = prev.getnext(); if (next.getvalue() == v) return false; Node n = new Node(v); n.setnext(prev.getnext()); prev.setnext(n); return true; Transactional public boolean add(int v) { TMThread t = (TMThread)Thread.currentThread(); while (true) { t.begintransaction(); boolean result = false; try { Node prev = (Node)head.open(ED); Node next = (Node)prev.getNext().open(ED); while (next.getvalue() < v) { prev = next; next = (Node)prev.getNext().open(ED); if (curr.getvalue()!= v) { result = true; n.setnext(prev.getnext()); prev = (Node)prev.open(WITE); prev.setnext(new TM(new Node(v))); catch (Denied d) { if (t.committransaction()) return result; 2/15/11 Transactional Memory: Part II P. Felber 15 2/15/11 Transactional Memory: Part II P. Felber 16

5 M: how important? M: how important?! M is essential for performance and livelock avoidance! ample Ms! ggressive: kill enemy! Polite: exponential backoff first // ggressive M void handleonflict(tx me, TX enemy) { enemy.abort();! Karma: increase priority with opened objects and retries, higher priority wins! Timestamp: older transaction wins! Greedy: uses timestamp-based priorities, bounds on worst case completion time 2/15/11 Transactional Memory: Part II P. Felber 17 2/15/11 Transactional Memory: Part II P. Felber 18! s DTM, but:! # implementation XM [Herlihy, 2005]! Use visible reads (maintain reader list)! ingle writer or multiple readers allowed! upport for some advanced patterns! onditional waiting (retry when some object accessed by transaction has been updated)! Or-else combinator (specify alternative to use upon retry) FTM [Fraser, 2003]! Provides lock freedom (stronger than obstruction freedom!)! Implemented using helping (a transaction can help another one)! Uses invisible reads! No extra indirection (i.e., faster data access)! cquire objects at commit time (lazy) 2/15/11 Transactional Memory: Part II P. Felber 19 2/15/11 Transactional Memory: Part II P. Felber 20

6 FTM: data structures FTM: open (write mode) UNDEIDED FILED UEFUL tatus O list /W list Handle Old data New data Next New data Next Header! reate shadow copy (to be updated) and store object in /W list! Note that the write is not visible to other transactions at this point UNDEIDED O list /W list Handle Old data New data Next Header opy 2/15/11 Transactional Memory: Part II P. Felber 21 2/15/11 Transactional Memory: Part II P. Felber 22 FTM: commit 1. cquire the objects in some total order! Header points to the transaction descriptor 2. Decision (after O list validation) 3. elease objects! Header points to new copy UEFUL UNDEIDED O list /W list Handle Old data New data Next Header FTM: lock freedom! ommit phase! multi-word! s are acquired in some total order to ensure lock freedom! ontention is detected when the header points to another transaction! ontention is resolved by order based helping! If header points to the descriptor of another transaction, recursively help it complete! onflict detected if old versions have changed 2/15/11 Transactional Memory: Part II P. Felber 23 2/15/11 Transactional Memory: Part II P. Felber 24

7 FTM: costs! Given W objects opened in write mode and in read mode! 2W + 1! W cloning overhead! O() validation overhead (but may work on inconsistent data!) 2/15/11 Transactional Memory: Part II P. Felber 25 On TM read operations! Visible reads! Maintain reader list per transactional object! an be used to detect /W conflicts (pessimistic)! ontention on reader lists (e.g., root of tree)! Invisible reads! No list of readers is maintained (optimistic)! No easy way to detect /W conflicts! onsistency must be checked (validation)! Validate on commit: may work on inconsistent data! Validate on open: costly (linear w/ read set size)! Goal: low validation costs + consistency 26 On the cost of read operations TM: invisible reads, eager validation XM: visible reads L: time-based invisible reads Invisible reads: validation costs grow linearly Visible reads: cacheline level contention 2/15/11 Transactional Memory: Part II P. Felber 27! Motivation L-TM [iegel et al., 2006]! peed up for transactions with large read sets! Efficient time-based snapshot algorithm (L) to reduce overhead! ead-only transactions! Keep multiple object versions (no abort)! L-TM! -based (uses DTM-like locators)! Java implementation! nnotations and OP for ease of use! Winner of UN s oolthreads contest! 2/15/11 Transactional Memory: Part II P. Felber 28

8 L-TM: algorithm! Global time base: T! ounts the number of commits! s have multiple versions! Each version V has a validity range V w.r.t. T! Most recent version has upper bound! L-TM: algorithm! Transaction maintains a snapshot with a validity range T! Equal to the intersection of the accessed versions' validity ranges! Initialized to [ T,!]! If it becomes empty, transaction must abort 1 1 ommit time 2/15/11 Transactional Memory: Part II P. Felber 29 ommit time 2/15/11 Transactional Memory: Part II P. Felber 30 L-TM: algorithm! Upon read, snapshot is updated! Validity range ends at time of the read! We know that the value read is valid now, but we do not know if it will change in the future L-TM: algorithm! Upon read, if snapshot intersects with the latest version s validity range:! The snapshot is a valid linearization point (as long as there are no writes)! No need to update snapshot 1 1 ommit time ommit time 31 32

9 L-TM: algorithm L-TM: algorithm! Upon read, if snapshot does not intersect with the latest version s validity range:! The snapshot is a not valid linearization point! Must try to extend snapshot (may fail)! Note: read-only transactions can use old version 1 2! Extension tries to increase the upper bound of the snapshot! heck if all versions read are still valid! If so, we can extend the upper bound of the snapshot to current T (now) 1 2 (another TX) ommit time 33 ommit time 34 L-TM: algorithm! Extension may also increase the lower bound of the snapshot! et to the largest lower bound among the validity ranges of accessed versions L-TM: algorithm! ead-only transactions can commit as long as their snapshot is not empty! No need to extend range to current T! Linearization point anywhere in snapshot range ommit time ommit time 35 36

10 L-TM: algorithm L-TM: algorithm! Update transactions create new versions of modified objects upon commit at T! Validity range of newly created object versions starts at T! Tentative versions being written are not visible to other transactions and are discarded upon abort 1 2 W nother TX W ommit time 37! Upon commit, an update transactions tries to acquire a new, unique commit timestamp T! Transaction can commit iff the snapshot can be extended to T - 1 (otherwise, abort)! Note: validation can be skipped if T = T - 1 W 2 W : 1 2 nother TX ommit time 38 L-TM: algorithm [DI 2006] L-TM: algorithm [DI 2006] 2/15/11 Transactional Memory: Part II P. Felber 39 2/15/11 Transactional Memory: Part II P. Felber 40

11 L-TM: # extensions required L-TM: data structures! ead-only transactions! 0 (if enough versions are kept)! Update transactions! 0 or 1 for commit! t most one extension per accessed object! Only caused by concurrent updates to these objects! Disjoint updates do not increase the number of extensions! In practice, only a few extensions are required 41 ame principle as DTM, but maintain timestamps and keep (some) old versions [0] [1] hared clock Transaction Old version Timestamp Older versions Version Timestamp Version Timestamp tatus tart End /W sets TIVE OTED OMMITTED napshot 2/15/11 Transactional Memory: Part II P. Felber 42 L-TM: programming example L-TM: programming example List Node Node Node Node Node MIN MX List Node Node Node Node Node MIN MX public class Node { private int value; private Node next; Non-transactional public Node(int v) { value = v; public void setvalue(int v) { value = v; public void setnext(node n) { next = n; public int getvalue() { return value; public Node getnext() { return public class Node { private int value; private Node next; Transactional public Node(int v) { value = v; public void setvalue(int v) { value = v; public void setnext(node n) { next = public int getvalue() { return public Node getnext() { return next; public class List { private Node head; Non-transactional public List() { Node min = new Node(Integer.MIN_VLUE); Node max = new Node(Integer.MX_VLUE); min.setnext(max); head = min; // public class List { private Node head; Transactional public List() { Node min = new Node(Integer.MIN_VLUE); Node max = new Node(Integer.MX_VLUE); min.setnext(max); head = min; // 2/15/11 Transactional Memory: Part II P. Felber 43 2/15/11 Transactional Memory: Part II P. Felber 44

12 L-TM: programming example L-TM: Linked list add(15) Node Node Just add annotations to transactional objects and atomic methods et voilà! Non-transactional public boolean add(int v) { Node prev = head; Node next = prev.getnext(); while (next.getvalue() < v) { prev = next; next = prev.getnext(); if (next.getvalue() == v) return false; Node n = new Node(v); n.setnext(prev.getnext()); prev.setnext(n); return true; public boolean add(int v) { Node prev = head; Node next = prev.getnext(); while (next.getvalue() < v) { prev = next; next = prev.getnext(); if (next.getvalue() == v) return false; Node n = new Node(v); n.setnext(prev.getnext()); prev.setnext(n); return true; TM: invisible reads, eager validation XM: visible reads L: time-based invisible reads 2/15/11 Transactional Memory: Part II P. Felber 45 2/15/11 Transactional Memory: Part II P. Felber 46 L-TM: Linked list L-TM: Linked list TM: invisible reads, eager validation XM: visible reads L: time-based invisible reads 2/15/11 Transactional Memory: Part II P. Felber 47 TM: invisible reads, eager validation XM: visible reads L: time-based invisible reads 2/15/11 Transactional Memory: Part II P. Felber 48

13 L-TM: kip list L-TM: kip list TM: invisible reads, eager validation XM: visible reads L: time-based invisible reads 2/15/11 Transactional Memory: Part II P. Felber 49 TM: invisible reads, eager validation XM: visible reads L: time-based invisible reads 2/15/11 Transactional Memory: Part II P. Felber 50 L-TM: kip list TM: invisible reads, eager validation XM: visible reads L: time-based invisible reads 2/15/11 Transactional Memory: Part II P. Felber 51 onclusion (Part II)! Obstruction-free TM designs provide progress guarantees (with the help of M)! Transactions must be able to commit atomically and abort another transaction atomically! Typically use indirection (must be able to steal objects)! Lock-free is more complex to implement! Typically based on helping! Time-based designs with invisible reads provide high efficiency and consistency! May be obstruction-free (or not ) 2/15/11 Transactional Memory: Part II P. Felber 52

Software Transactional Memory for Dynamic-sized Data Structures

Software Transactional Memory for Dynamic-sized Data Structures Software Transactional Memory for Dynamic-sized Structures Maurice Herlihy, Victor Luchango, Mark Moir, William N. Scherer III Presented by: Irina Botan Outline Introduction Dynamic Software Transactional

More information

Agenda. Designing Transactional Memory Systems. Why not obstruction-free? Why lock-based?

Agenda. Designing Transactional Memory Systems. Why not obstruction-free? Why lock-based? Agenda Designing Transactional Memory Systems Part III: Lock-based STMs Pascal Felber University of Neuchatel Pascal.Felber@unine.ch Part I: Introduction Part II: Obstruction-free STMs Part III: Lock-based

More information

Some Examples of Conflicts. Transactional Concurrency Control. Serializable Schedules. Transactions: ACID Properties. Isolation and Serializability

Some Examples of Conflicts. Transactional Concurrency Control. Serializable Schedules. Transactions: ACID Properties. Isolation and Serializability ome Examples of onflicts ransactional oncurrency ontrol conflict exists when two transactions access the same item, and at least one of the accesses is a write. 1. lost update problem : transfer $100 from

More information

Transactional Memory

Transactional Memory Transactional Memory Michał Kapałka EPFL, LPD STiDC 08, 1.XII 2008 Michał Kapałka (EPFL, LPD) Transactional Memory STiDC 08, 1.XII 2008 1 / 25 Introduction How to Deal with Multi-Threading? Locks? Wait-free

More information

6.852: Distributed Algorithms Fall, Class 20

6.852: Distributed Algorithms Fall, Class 20 6.852: Distributed Algorithms Fall, 2009 Class 20 Today s plan z z z Transactional Memory Reading: Herlihy-Shavit, Chapter 18 Guerraoui, Kapalka, Chapters 1-4 Next: z z z Asynchronous networks vs asynchronous

More information

A Qualitative Survey of Modern Software Transactional Memory Systems

A Qualitative Survey of Modern Software Transactional Memory Systems A Qualitative Survey of Modern Software Transactional Memory Systems Virendra J. Marathe and Michael L. Scott TR 839 Department of Computer Science University of Rochester Rochester, NY 14627-0226 {vmarathe,

More information

Software transactional memory

Software transactional memory Transactional locking II (Dice et. al, DISC'06) Time-based STM (Felber et. al, TPDS'08) Mentor: Johannes Schneider March 16 th, 2011 Motivation Multiprocessor systems Speed up time-sharing applications

More information

Conflict Detection and Validation Strategies for Software Transactional Memory

Conflict Detection and Validation Strategies for Software Transactional Memory Conflict Detection and Validation Strategies for Software Transactional Memory Michael F. Spear, Virendra J. Marathe, William N. Scherer III, and Michael L. Scott University of Rochester www.cs.rochester.edu/research/synchronization/

More information

Design and Implementation of Transactions in a Column-Oriented In-Memory Database System

Design and Implementation of Transactions in a Column-Oriented In-Memory Database System Design and Implementation of Transactions in a Column-Oriented In-Memory Database System Markus Olsson March 16, 2010 Master s Thesis in Computing Science, 30 ECTS credits Supervisor at CS-UmU: Stephen

More information

Multi-Core Computing with Transactional Memory. Johannes Schneider and Prof. Roger Wattenhofer

Multi-Core Computing with Transactional Memory. Johannes Schneider and Prof. Roger Wattenhofer Multi-Core Computing with Transactional Memory Johannes Schneider and Prof. Roger Wattenhofer 1 Overview Introduction Difficulties with parallel (multi-core) programming A (partial) solution: Transactional

More information

Lecture 7: Transactional Memory Intro. Topics: introduction to transactional memory, lazy implementation

Lecture 7: Transactional Memory Intro. Topics: introduction to transactional memory, lazy implementation Lecture 7: Transactional Memory Intro Topics: introduction to transactional memory, lazy implementation 1 Transactions New paradigm to simplify programming instead of lock-unlock, use transaction begin-end

More information

Scheduling Transactions in Replicated Distributed Transactional Memory

Scheduling Transactions in Replicated Distributed Transactional Memory Scheduling Transactions in Replicated Distributed Transactional Memory Junwhan Kim and Binoy Ravindran Virginia Tech USA {junwhan,binoy}@vt.edu CCGrid 2013 Concurrency control on chip multiprocessors significantly

More information

Lecture 6: TM Eager Implementations. Topics: Eager conflict detection (LogTM), TM pathologies

Lecture 6: TM Eager Implementations. Topics: Eager conflict detection (LogTM), TM pathologies Lecture 6: TM Eager Implementations Topics: Eager conflict detection (LogTM), TM pathologies 1 Design Space Data Versioning Eager: based on an undo log Lazy: based on a write buffer Typically, versioning

More information

Atomic Transac1ons. Atomic Transactions. Q1: What if network fails before deposit? Q2: What if sequence is interrupted by another sequence?

Atomic Transac1ons. Atomic Transactions. Q1: What if network fails before deposit? Q2: What if sequence is interrupted by another sequence? CPSC-4/6: Operang Systems Atomic Transactions The Transaction Model / Primitives Serializability Implementation Serialization Graphs 2-Phase Locking Optimistic Concurrency Control Transactional Memory

More information

Transactional Memory. R. Guerraoui, EPFL

Transactional Memory. R. Guerraoui, EPFL Transactional Memory R. Guerraoui, EPFL Locking is history Lock-freedom is difficult Wanted A concurrency control abstraction that is simple, robust and efficient Transactions Historical perspective Eswaran

More information

Transactional Memory. Yaohua Li and Siming Chen. Yaohua Li and Siming Chen Transactional Memory 1 / 41

Transactional Memory. Yaohua Li and Siming Chen. Yaohua Li and Siming Chen Transactional Memory 1 / 41 Transactional Memory Yaohua Li and Siming Chen Yaohua Li and Siming Chen Transactional Memory 1 / 41 Background Processor hits physical limit on transistor density Cannot simply put more transistors to

More information

Relaxing Concurrency Control in Transactional Memory. Utku Aydonat

Relaxing Concurrency Control in Transactional Memory. Utku Aydonat Relaxing Concurrency Control in Transactional Memory by Utku Aydonat A thesis submitted in conformity with the requirements for the degree of Doctor of Philosophy Graduate Department of The Edward S. Rogers

More information

Lecture 4: Directory Protocols and TM. Topics: corner cases in directory protocols, lazy TM

Lecture 4: Directory Protocols and TM. Topics: corner cases in directory protocols, lazy TM Lecture 4: Directory Protocols and TM Topics: corner cases in directory protocols, lazy TM 1 Handling Reads When the home receives a read request, it looks up memory (speculative read) and directory in

More information

Synchronization Part 2. REK s adaptation of Claypool s adaptation oftanenbaum s Distributed Systems Chapter 5 and Silberschatz Chapter 17

Synchronization Part 2. REK s adaptation of Claypool s adaptation oftanenbaum s Distributed Systems Chapter 5 and Silberschatz Chapter 17 Synchronization Part 2 REK s adaptation of Claypool s adaptation oftanenbaum s Distributed Systems Chapter 5 and Silberschatz Chapter 17 1 Outline Part 2! Clock Synchronization! Clock Synchronization Algorithms!

More information

Monitors; Software Transactional Memory

Monitors; Software Transactional Memory Monitors; Software Transactional Memory Parallel and Distributed Computing Department of Computer Science and Engineering (DEI) Instituto Superior Técnico October 18, 2012 CPD (DEI / IST) Parallel and

More information

Lecture 6: Lazy Transactional Memory. Topics: TM semantics and implementation details of lazy TM

Lecture 6: Lazy Transactional Memory. Topics: TM semantics and implementation details of lazy TM Lecture 6: Lazy Transactional Memory Topics: TM semantics and implementation details of lazy TM 1 Transactions Access to shared variables is encapsulated within transactions the system gives the illusion

More information

Shared Objects. Shared Objects

Shared Objects. Shared Objects Shared Objects Shared Objects Invoked operations have a non-zero duration Invocations can overlap Useful for: modeling distributed shared memory Objects can be combined together to implement higher level

More information

Distributed Systems (ICE 601) Transactions & Concurrency Control - Part1

Distributed Systems (ICE 601) Transactions & Concurrency Control - Part1 Distributed Systems (ICE 601) Transactions & Concurrency Control - Part1 Dongman Lee ICU Class Overview Transactions Why Concurrency Control Concurrency Control Protocols pessimistic optimistic time-based

More information

Lecture 8: Eager Transactional Memory. Topics: implementation details of eager TM, various TM pathologies

Lecture 8: Eager Transactional Memory. Topics: implementation details of eager TM, various TM pathologies Lecture 8: Eager Transactional Memory Topics: implementation details of eager TM, various TM pathologies 1 Eager Overview Topics: Logs Log optimization Conflict examples Handling deadlocks Sticky scenarios

More information

Implementing and Evaluating Nested Parallel Transactions in STM. Woongki Baek, Nathan Bronson, Christos Kozyrakis, Kunle Olukotun Stanford University

Implementing and Evaluating Nested Parallel Transactions in STM. Woongki Baek, Nathan Bronson, Christos Kozyrakis, Kunle Olukotun Stanford University Implementing and Evaluating Nested Parallel Transactions in STM Woongki Baek, Nathan Bronson, Christos Kozyrakis, Kunle Olukotun Stanford University Introduction // Parallelize the outer loop for(i=0;i

More information

Improving STM Performance with Transactional Structs 1

Improving STM Performance with Transactional Structs 1 Improving STM Performance with Transactional Structs 1 Ryan Yates and Michael L. Scott University of Rochester IFL, 8-31-2016 1 This work was funded in part by the National Science Foundation under grants

More information

Design Tradeoffs in Modern Software Transactional Memory Systems

Design Tradeoffs in Modern Software Transactional Memory Systems Design Tradeoffs in Modern Software al Memory Systems Virendra J. Marathe, William N. Scherer III, and Michael L. Scott Department of Computer Science University of Rochester Rochester, NY 14627-226 {vmarathe,

More information

NON-BLOCKING DATA STRUCTURES AND TRANSACTIONAL MEMORY. Tim Harris, 28 November 2014

NON-BLOCKING DATA STRUCTURES AND TRANSACTIONAL MEMORY. Tim Harris, 28 November 2014 NON-BLOCKING DATA STRUCTURES AND TRANSACTIONAL MEMORY Tim Harris, 28 November 2014 Lecture 8 Problems with locks Atomic blocks and composition Hardware transactional memory Software transactional memory

More information

Problems Caused by Failures

Problems Caused by Failures Problems Caused by Failures Update all account balances at a bank branch. Accounts(Anum, CId, BranchId, Balance) Update Accounts Set Balance = Balance * 1.05 Where BranchId = 12345 Partial Updates - Lack

More information

CSE 544 Principles of Database Management Systems. Alvin Cheung Fall 2015 Lecture 14 Distributed Transactions

CSE 544 Principles of Database Management Systems. Alvin Cheung Fall 2015 Lecture 14 Distributed Transactions CSE 544 Principles of Database Management Systems Alvin Cheung Fall 2015 Lecture 14 Distributed Transactions Transactions Main issues: Concurrency control Recovery from failures 2 Distributed Transactions

More information

Pessimistic v.s. Optimistic. Outline. Timestamps. Timestamps. Timestamps. CSE 444: Database Internals. Main invariant:

Pessimistic v.s. Optimistic. Outline. Timestamps. Timestamps. Timestamps. CSE 444: Database Internals. Main invariant: Pessimistic v.s. Optimistic SE 444: Database Internals Lectures 5 and 6 Transactions: Optimistic oncurrency ontrol Pessimistic (locking) Prevents unserializable schedules Never for serializability (but

More information

Part 1: Concepts and Hardware- Based Approaches

Part 1: Concepts and Hardware- Based Approaches Part 1: Concepts and Hardware- Based Approaches CS5204-Operating Systems Introduction Provide support for concurrent activity using transactionstyle semantics without explicit locking Avoids problems with

More information

Advances in Data Management Transaction Management A.Poulovassilis

Advances in Data Management Transaction Management A.Poulovassilis 1 Advances in Data Management Transaction Management A.Poulovassilis 1 The Transaction Manager Two important measures of DBMS performance are throughput the number of tasks that can be performed within

More information

Concurrency Control in Distributed Systems. ECE 677 University of Arizona

Concurrency Control in Distributed Systems. ECE 677 University of Arizona Concurrency Control in Distributed Systems ECE 677 University of Arizona Agenda What? Why? Main problems Techniques Two-phase locking Time stamping method Optimistic Concurrency Control 2 Why concurrency

More information

Lecture 12: TM, Consistency Models. Topics: TM pathologies, sequential consistency, hw and hw/sw optimizations

Lecture 12: TM, Consistency Models. Topics: TM pathologies, sequential consistency, hw and hw/sw optimizations Lecture 12: TM, Consistency Models Topics: TM pathologies, sequential consistency, hw and hw/sw optimizations 1 Paper on TM Pathologies (ISCA 08) LL: lazy versioning, lazy conflict detection, committing

More information

Control. CS432: Distributed Systems Spring 2017

Control. CS432: Distributed Systems Spring 2017 Transactions and Concurrency Control Reading Chapter 16, 17 (17.2,17.4,17.5 ) [Coulouris 11] Chapter 12 [Ozsu 10] 2 Objectives Learn about the following: Transactions in distributed systems Techniques

More information

) Intel)(TX)memory):) Transac'onal) Synchroniza'on) Extensions)(TSX))) Transac'ons)

) Intel)(TX)memory):) Transac'onal) Synchroniza'on) Extensions)(TSX))) Transac'ons) ) Intel)(TX)memory):) Transac'onal) Synchroniza'on) Extensions)(TSX))) Transac'ons) Transactions - Definition A transaction is a sequence of data operations with the following properties: * A Atomic All

More information

LogTM: Log-Based Transactional Memory

LogTM: Log-Based Transactional Memory LogTM: Log-Based Transactional Memory Kevin E. Moore, Jayaram Bobba, Michelle J. Moravan, Mark D. Hill, & David A. Wood 12th International Symposium on High Performance Computer Architecture () 26 Mulitfacet

More information

Evaluating Contention Management Using Discrete Event Simulation

Evaluating Contention Management Using Discrete Event Simulation Evaluating Contention Management Using Discrete Event Simulation Brian Demsky Alokika Dash Department of Electrical Engineering and Computer Science University of California, Irvine Irvine, CA 92697 {bdemsky,adash}@uci.edu

More information

(Pessimistic) Timestamp Ordering

(Pessimistic) Timestamp Ordering (Pessimistic) Timestamp Ordering Another approach to concurrency control: Assign a timestamp ts(t) to transaction T at the moment it starts Using Lamport's timestamps: total order is given. In distributed

More information

Portland State University ECE 588/688. Transactional Memory

Portland State University ECE 588/688. Transactional Memory Portland State University ECE 588/688 Transactional Memory Copyright by Alaa Alameldeen 2018 Issues with Lock Synchronization Priority Inversion A lower-priority thread is preempted while holding a lock

More information

INTRODUCTION. Hybrid Transactional Memory. Transactional Memory. Problems with Transactional Memory Problems

INTRODUCTION. Hybrid Transactional Memory. Transactional Memory. Problems with Transactional Memory Problems Hybrid Transactional Memory Peter Damron Sun Microsystems peter.damron@sun.com Alexandra Fedorova Harvard University and Sun Microsystems Laboratories fedorova@eecs.harvard.edu Yossi Lev Brown University

More information

0: BEGIN TRANSACTION 1: W = 1 2: X = W + 1 3: Y = X * 2 4: COMMIT TRANSACTION

0: BEGIN TRANSACTION 1: W = 1 2: X = W + 1 3: Y = X * 2 4: COMMIT TRANSACTION Transactions 1. a) Show how atomicity is maintained using a write-ahead log if the system crashes when executing statement 3. Main memory is small, and can only hold 2 variables at a time. Initially, all

More information

Synchronization. Chapter 5

Synchronization. Chapter 5 Synchronization Chapter 5 Clock Synchronization In a centralized system time is unambiguous. (each computer has its own clock) In a distributed system achieving agreement on time is not trivial. (it is

More information

Announcements. Review of Schedules. Scheduler. Notation. Pessimistic Scheduler. CSE 444: Database Internals. Serializability.

Announcements. Review of Schedules. Scheduler. Notation. Pessimistic Scheduler. CSE 444: Database Internals. Serializability. nnouncements SE 444: Database Internals Lab 2 is due tonight Lab 2 quiz is on Wednesday in class Same format as lab 1 quiz Lectures 14 Transactions: Locking Lab 3 is available Fastest way to do lab 3 is

More information

Transactional Memory. Companion slides for The Art of Multiprocessor Programming by Maurice Herlihy & Nir Shavit

Transactional Memory. Companion slides for The Art of Multiprocessor Programming by Maurice Herlihy & Nir Shavit Transactional Memory Companion slides for The by Maurice Herlihy & Nir Shavit Our Vision for the Future In this course, we covered. Best practices New and clever ideas And common-sense observations. 2

More information

Nikos Anastopoulos, Konstantinos Nikas, Georgios Goumas and Nectarios Koziris

Nikos Anastopoulos, Konstantinos Nikas, Georgios Goumas and Nectarios Koziris Early Experiences on Accelerating Dijkstra s Algorithm Using Transactional Memory Nikos Anastopoulos, Konstantinos Nikas, Georgios Goumas and Nectarios Koziris Computing Systems Laboratory School of Electrical

More information

Serializability of Transactions in Software Transactional Memory

Serializability of Transactions in Software Transactional Memory Serializability of Transactions in Software Transactional Memory Utku Aydonat Tarek S. Abdelrahman Edward S. Rogers Sr. Department of Electrical and Computer Engineering University of Toronto {uaydonat,tsa}@eecg.toronto.edu

More information

Implementing Rollback: Copy. 2PL: Rollback. Implementing Rollback: Undo. 8L for Part IB Handout 4. Concurrent Systems. Dr.

Implementing Rollback: Copy. 2PL: Rollback. Implementing Rollback: Undo. 8L for Part IB Handout 4. Concurrent Systems. Dr. Concurrent Systems 8L for Part IB Handout 4 Dr. Steven Hand Implementing Rollback: Undo One strategy is to undo operations, e.g. Keep a log of all operations, in order: O 1, O 2,.. O n On abort, undo changes

More information

Lecture 21: Transactional Memory. Topics: Hardware TM basics, different implementations

Lecture 21: Transactional Memory. Topics: Hardware TM basics, different implementations Lecture 21: Transactional Memory Topics: Hardware TM basics, different implementations 1 Transactions New paradigm to simplify programming instead of lock-unlock, use transaction begin-end locks are blocking,

More information

TRANSACTION MEMORY. Presented by Hussain Sattuwala Ramya Somuri

TRANSACTION MEMORY. Presented by Hussain Sattuwala Ramya Somuri TRANSACTION MEMORY Presented by Hussain Sattuwala Ramya Somuri AGENDA Issues with Lock Free Synchronization Transaction Memory Hardware Transaction Memory Software Transaction Memory Conclusion 1 ISSUES

More information

CMSC 433 Programming Language Technologies and Paradigms. Spring 2013

CMSC 433 Programming Language Technologies and Paradigms. Spring 2013 1 CMSC 433 Programming Language Technologies and Paradigms Spring 2013 Wait / Notify / NotifyAll Optimistic Retries Composition Follow-up (the risk I mentioned) ReentrantLock, Wait, Notify, NotifyAll Some

More information

Time-based Transactional Memory with Scalable Time Bases

Time-based Transactional Memory with Scalable Time Bases Time-based Transactional Memory with Scalable Time Bases Torvald Riegel Dresden University of Technology, Germany torvald.riegel@inf.tudresden.de Christof Fetzer Dresden University of Technology, Germany

More information

Unit 10.5 Transaction Processing: Concurrency Zvi M. Kedem 1

Unit 10.5 Transaction Processing: Concurrency Zvi M. Kedem 1 Unit 10.5 Transaction Processing: Concurrency 2016 Zvi M. Kedem 1 Concurrency in Context User Level (View Level) Community Level (Base Level) Physical Level DBMS OS Level Centralized Or Distributed Derived

More information

Defining properties of transactions

Defining properties of transactions Transactions: ACID, Concurrency control (2P, OCC) Intro to distributed txns The transaction Definition: A unit of work: May consist of multiple data accesses or updates Must commit or abort as a single

More information

(Pessimistic) Timestamp Ordering. Rules for read and write Operations. Read Operations and Timestamps. Write Operations and Timestamps

(Pessimistic) Timestamp Ordering. Rules for read and write Operations. Read Operations and Timestamps. Write Operations and Timestamps (Pessimistic) stamp Ordering Another approach to concurrency control: Assign a timestamp ts(t) to transaction T at the moment it starts Using Lamport's timestamps: total order is given. In distributed

More information

Monitors; Software Transactional Memory

Monitors; Software Transactional Memory Monitors; Software Transactional Memory Parallel and Distributed Computing Department of Computer Science and Engineering (DEI) Instituto Superior Técnico March 17, 2016 CPD (DEI / IST) Parallel and Distributed

More information

Synchronization. Clock Synchronization

Synchronization. Clock Synchronization Synchronization Clock Synchronization Logical clocks Global state Election algorithms Mutual exclusion Distributed transactions 1 Clock Synchronization Time is counted based on tick Time judged by query

More information

Potential violations of Serializability: Example 1

Potential violations of Serializability: Example 1 CSCE 6610:Advanced Computer Architecture Review New Amdahl s law A possible idea for a term project Explore my idea about changing frequency based on serial fraction to maintain fixed energy or keep same

More information

Concurrency control CS 417. Distributed Systems CS 417

Concurrency control CS 417. Distributed Systems CS 417 Concurrency control CS 417 Distributed Systems CS 417 1 Schedules Transactions must have scheduled so that data is serially equivalent Use mutual exclusion to ensure that only one transaction executes

More information

Chapter 9: Concurrency Control

Chapter 9: Concurrency Control Chapter 9: Concurrency Control Concurrency, Conflicts, and Schedules Locking Based Algorithms Timestamp Ordering Algorithms Deadlock Management Acknowledgements: I am indebted to Arturas Mazeika for providing

More information

Permissiveness in Transactional Memories

Permissiveness in Transactional Memories Permissiveness in Transactional Memories Rachid Guerraoui, Thomas A. Henzinger, and Vasu Singh EPFL, Switzerland Abstract. We introduce the notion of permissiveness in transactional memories (TM). Intuitively,

More information

On Maintaining Multiple Versions in STM

On Maintaining Multiple Versions in STM On Maintaining Multiple Versions in STM Dmitri Perelman Rui Fan Idit Keidar May 20, 2010 Abstract An effective way to reduce the number of aborts in software transactional memory (STM) is to keep multiple

More information

Manchester University Transactions for Scala

Manchester University Transactions for Scala Manchester University Transactions for Scala Salman Khan salman.khan@cs.man.ac.uk MMNet 2011 Transactional Memory Alternative to locks for handling concurrency Locks Prevent all other threads from accessing

More information

Lecture: Consistency Models, TM. Topics: consistency models, TM intro (Section 5.6)

Lecture: Consistency Models, TM. Topics: consistency models, TM intro (Section 5.6) Lecture: Consistency Models, TM Topics: consistency models, TM intro (Section 5.6) 1 Coherence Vs. Consistency Recall that coherence guarantees (i) that a write will eventually be seen by other processors,

More information

transaction - (another def) - the execution of a program that accesses or changes the contents of the database

transaction - (another def) - the execution of a program that accesses or changes the contents of the database Chapter 19-21 - Transaction Processing Concepts transaction - logical unit of database processing - becomes interesting only with multiprogramming - multiuser database - more than one transaction executing

More information

Transactional Memory. How to do multiple things at once. Benjamin Engel Transactional Memory 1 / 28

Transactional Memory. How to do multiple things at once. Benjamin Engel Transactional Memory 1 / 28 Transactional Memory or How to do multiple things at once Benjamin Engel Transactional Memory 1 / 28 Transactional Memory: Architectural Support for Lock-Free Data Structures M. Herlihy, J. Eliot, and

More information

Concurrency Control II and Distributed Transactions

Concurrency Control II and Distributed Transactions Concurrency Control II and Distributed Transactions CS 240: Computing Systems and Concurrency Lecture 18 Marco Canini Credits: Michael Freedman and Kyle Jamieson developed much of the original material.

More information

Mutex Locking versus Hardware Transactional Memory: An Experimental Evaluation

Mutex Locking versus Hardware Transactional Memory: An Experimental Evaluation Mutex Locking versus Hardware Transactional Memory: An Experimental Evaluation Thesis Defense Master of Science Sean Moore Advisor: Binoy Ravindran Systems Software Research Group Virginia Tech Multiprocessing

More information

Transaction Processing Concurrency control

Transaction Processing Concurrency control Transaction Processing Concurrency control Hans Philippi March 14, 2017 Transaction Processing: Concurrency control 1 / 24 Transactions Transaction Processing: Concurrency control 2 / 24 Transaction concept

More information

Optimistic Concurrency Control. April 18, 2018

Optimistic Concurrency Control. April 18, 2018 Optimistic Concurrency Control April 18, 2018 1 Serializability Executing transactions serially wastes resources Interleaving transactions creates correctness errors Give transactions the illusion of isolation

More information

Lock-free Serializable Transactions

Lock-free Serializable Transactions Lock-free Serializable Transactions Jeff Napper jmn@cs.utexas.edu Lorenzo Alvisi lorenzo@cs.utexas.edu Laboratory for Advanced Systems Research Department of Computer Science The University of Texas at

More information

Coping With Context Switches in Lock-Based Software Transacional Memory Algorithms

Coping With Context Switches in Lock-Based Software Transacional Memory Algorithms TEL-AVIV UNIVERSITY RAYMOND AND BEVERLY SACKLER FACULTY OF EXACT SCIENCES SCHOOL OF COMPUTER SCIENCE Coping With Context Switches in Lock-Based Software Transacional Memory Algorithms Dissertation submitted

More information

k-abortable Objects: Progress under High Contention

k-abortable Objects: Progress under High Contention k-abortable Objects: Progress under High Contention Naama Ben-David 1, David Yu Cheng Chan 2, Vassos Hadzilacos 2, and Sam Toueg 2 Carnegie Mellon University 1 University of Toronto 2 Outline Background

More information

Synchronization Part II. CS403/534 Distributed Systems Erkay Savas Sabanci University

Synchronization Part II. CS403/534 Distributed Systems Erkay Savas Sabanci University Synchronization Part II CS403/534 Distributed Systems Erkay Savas Sabanci University 1 Election Algorithms Issue: Many distributed algorithms require that one process act as a coordinator (initiator, etc).

More information

Optimistic Concurrency Control. April 13, 2017

Optimistic Concurrency Control. April 13, 2017 Optimistic Concurrency Control April 13, 2017 1 Serializability Executing transactions serially wastes resources Interleaving transactions creates correctness errors Give transactions the illusion of isolation

More information

LOCKLESS ALGORITHMS. Lockless Algorithms. CAS based algorithms stack order linked list

LOCKLESS ALGORITHMS. Lockless Algorithms. CAS based algorithms stack order linked list Lockless Algorithms CAS based algorithms stack order linked list CS4021/4521 2017 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 2-Jan-18 1 Obstruction, Lock and Wait

More information

10 Supporting Time-Based QoS Requirements in Software Transactional Memory

10 Supporting Time-Based QoS Requirements in Software Transactional Memory 1 Supporting Time-Based QoS Requirements in Software Transactional Memory WALTHER MALDONADO, University of Neuchâtel, Switzerland PATRICK MARLIER, University of Neuchâtel, Switzerland PASCAL FELBER, University

More information

Atomicity via Source-to-Source Translation

Atomicity via Source-to-Source Translation Atomicity via Source-to-Source Translation Benjamin Hindman Dan Grossman University of Washington 22 October 2006 Atomic An easier-to-use and harder-to-implement primitive void deposit(int x){ synchronized(this){

More information

Percolator. Large-Scale Incremental Processing using Distributed Transactions and Notifications. D. Peng & F. Dabek

Percolator. Large-Scale Incremental Processing using Distributed Transactions and Notifications. D. Peng & F. Dabek Percolator Large-Scale Incremental Processing using Distributed Transactions and Notifications D. Peng & F. Dabek Motivation Built to maintain the Google web search index Need to maintain a large repository,

More information

Distributed Databases Systems

Distributed Databases Systems Distributed Databases Systems Lecture No. 07 Concurrency Control Naeem Ahmed Email: naeemmahoto@gmail.com Department of Software Engineering Mehran Univeristy of Engineering and Technology Jamshoro Outline

More information

Chapter 6: Process Synchronization. Module 6: Process Synchronization

Chapter 6: Process Synchronization. Module 6: Process Synchronization Chapter 6: Process Synchronization Module 6: Process Synchronization Background The Critical-Section Problem Peterson s Solution Synchronization Hardware Semaphores Classic Problems of Synchronization

More information

Parallel linked lists

Parallel linked lists Parallel linked lists Lecture 10 of TDA384/DIT391 (Principles of Conent Programming) Carlo A. Furia Chalmers University of Technology University of Gothenburg SP3 2017/2018 Today s menu The burden of locking

More information

CS 347 Parallel and Distributed Data Processing

CS 347 Parallel and Distributed Data Processing CS 347 Parallel and Distributed Data Processing Spring 2016 Notes 5: Concurrency Control Topics Data Database design Queries Decomposition Localization Optimization Transactions Concurrency control Reliability

More information

Lecture 20: Transactional Memory. Parallel Computer Architecture and Programming CMU , Spring 2013

Lecture 20: Transactional Memory. Parallel Computer Architecture and Programming CMU , Spring 2013 Lecture 20: Transactional Memory Parallel Computer Architecture and Programming Slide credit Many of the slides in today s talk are borrowed from Professor Christos Kozyrakis (Stanford University) Raising

More information

Lock-based concurrency control. Q: What if access patterns rarely, if ever, conflict? Serializability. Concurrency Control II (OCC, MVCC)

Lock-based concurrency control. Q: What if access patterns rarely, if ever, conflict? Serializability. Concurrency Control II (OCC, MVCC) Concurrency Control II (CC, MVCC) CS 418: Distributed Systems Lecture 18 Serializability Execution of a set of transactions over multiple items is equivalent to some serial execution of s Michael Freedman

More information

T ransaction Management 4/23/2018 1

T ransaction Management 4/23/2018 1 T ransaction Management 4/23/2018 1 Air-line Reservation 10 available seats vs 15 travel agents. How do you design a robust and fair reservation system? Do not enough resources Fair policy to every body

More information

Tom Ball Sebastian Burckhardt Madan Musuvathi Microsoft Research

Tom Ball Sebastian Burckhardt Madan Musuvathi Microsoft Research Tom Ball (tball@microsoft.com) Sebastian Burckhardt (sburckha@microsoft.com) Madan Musuvathi (madanm@microsoft.com) Microsoft Research P&C Parallelism Concurrency Performance Speedup Responsiveness Correctness

More information

Module 6: Process Synchronization

Module 6: Process Synchronization Module 6: Process Synchronization Background The Critical-Section Problem Synchronization Hardware Semaphores Classical Problems of Synchronization Critical Regions Monitors Synchronization in Solaris

More information

LogSI-HTM: Log Based Snapshot Isolation in Hardware Transactional Memory

LogSI-HTM: Log Based Snapshot Isolation in Hardware Transactional Memory LogSI-HTM: Log Based Snapshot Isolation in Hardware Transactional Memory Lois Orosa and Rodolfo zevedo Institute of Computing, University of Campinas (UNICMP) {lois.orosa,rodolfo}@ic.unicamp.br bstract

More information

CS5412: TRANSACTIONS (I)

CS5412: TRANSACTIONS (I) 1 CS5412: TRANSACTIONS (I) Lecture XVII Ken Birman Transactions 2 A widely used reliability technology, despite the BASE methodology we use in the first tier Goal for this week: in-depth examination of

More information

TRANSACTIONS AND ABSTRACTIONS

TRANSACTIONS AND ABSTRACTIONS TRANSACTIONS AND ABSTRACTIONS OVER HBASE Andreas Neumann @anew68! Continuuity AGENDA Transactions over HBase: Why? What? Implementation: How? The approach Transaction Manager Abstractions Future WHO WE

More information

Lecture 3: Synchronization & Deadlocks

Lecture 3: Synchronization & Deadlocks Lecture 3: Synchronization & Deadlocks Background Concurrent access to shared data may result in data inconsistency Maintaining data consistency requires mechanisms to ensure the orderly execution of cooperating

More information

Concurrency Control. Transaction Management. Lost Update Problem. Need for Concurrency Control. Concurrency control

Concurrency Control. Transaction Management. Lost Update Problem. Need for Concurrency Control. Concurrency control Concurrency Control Process of managing simultaneous operations on the database without having them interfere with one another. Transaction Management Concurrency control Connolly & Begg. Chapter 19. Third

More information

Part III Transactions

Part III Transactions Part III Transactions Transactions Example Transaction: Transfer amount X from A to B debit(account A; Amount X): A = A X; credit(account B; Amount X): B = B + X; Either do the whole thing or nothing ACID

More information

Hybrid Transactional Memory

Hybrid Transactional Memory Hybrid Transactional Memory Sanjeev Kumar Michael Chu Christopher J. Hughes Partha Kundu Anthony Nguyen Intel Labs, Santa Clara, CA University of Michigan, Ann Arbor {sanjeev.kumar, christopher.j.hughes,

More information

Lecture: Consistency Models, TM

Lecture: Consistency Models, TM Lecture: Consistency Models, TM Topics: consistency models, TM intro (Section 5.6) No class on Monday (please watch TM videos) Wednesday: TM wrap-up, interconnection networks 1 Coherence Vs. Consistency

More information

Commit Phase in Timestamp-based STM

Commit Phase in Timestamp-based STM Commit Phase in Timestamp-based STM Rui Zhang Dept. of Computer Science Rice University Houston, TX 77005, USA ruizhang@rice.edu Zoran Budimlić Dept. of Computer Science Rice University Houston, TX 77005,

More information

Concurrency Control Algorithms

Concurrency Control Algorithms Concurrency Control Algorithms Given a number of conflicting transactions, the serializability theory provides criteria to study the correctness of a possible schedule of execution it does not provide

More information

ABORTING CONFLICTING TRANSACTIONS IN AN STM

ABORTING CONFLICTING TRANSACTIONS IN AN STM Committing ABORTING CONFLICTING TRANSACTIONS IN AN STM PPOPP 09 2/17/2009 Hany Ramadan, Indrajit Roy, Emmett Witchel University of Texas at Austin Maurice Herlihy Brown University TM AND ITS DISCONTENTS

More information