! Part I: Introduction. ! Part II: Obstruction-free STMs. ! DSTM: an obstruction-free STM design. ! FSTM: a lock-free STM design
|
|
- Megan Summers
- 5 years ago
- Views:
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 Structures Maurice Herlihy, Victor Luchango, Mark Moir, William N. Scherer III Presented by: Irina Botan Outline Introduction Dynamic Software Transactional
More informationAgenda. 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 informationSome 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 informationTransactional 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 information6.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 informationA 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 informationSoftware 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 informationConflict 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 informationDesign 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 informationMulti-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 informationLecture 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 informationScheduling 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 informationLecture 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 informationAtomic 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 informationTransactional 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 informationTransactional 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 informationRelaxing 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 informationLecture 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 informationSynchronization 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 informationMonitors; 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 informationLecture 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 informationShared 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 informationDistributed 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 informationLecture 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 informationImplementing 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 informationImproving 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 informationDesign 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 informationNON-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 informationProblems 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 informationCSE 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 informationPessimistic 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 informationPart 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 informationAdvances 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 informationConcurrency 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 informationLecture 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 informationControl. 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) Transactions - Definition A transaction is a sequence of data operations with the following properties: * A Atomic All
More informationLogTM: 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 informationEvaluating 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 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 informationPortland 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 informationINTRODUCTION. 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 information0: 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 informationSynchronization. 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 informationAnnouncements. 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 informationTransactional 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 informationNikos 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 informationSerializability 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 informationImplementing 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 informationLecture 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 informationTRANSACTION 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 informationCMSC 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 informationTime-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 informationUnit 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 informationDefining 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) 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 informationMonitors; 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 informationSynchronization. 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 informationPotential 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 informationConcurrency 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 informationChapter 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 informationPermissiveness 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 informationOn 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 informationManchester 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 informationLecture: 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 informationtransaction - (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 informationTransactional 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 informationConcurrency 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 informationMutex 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 informationTransaction 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 informationOptimistic 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 informationLock-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 informationCoping 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 informationk-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 informationSynchronization 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 informationOptimistic 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 informationLOCKLESS 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 information10 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 informationAtomicity 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 informationPercolator. 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 informationDistributed 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 informationChapter 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 informationParallel 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 informationCS 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 informationLecture 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 informationLock-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 informationT 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 informationTom 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 informationModule 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 informationLogSI-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 informationCS5412: 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 informationTRANSACTIONS 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 informationLecture 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 informationConcurrency 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 informationPart 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 informationHybrid 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 informationLecture: 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 informationCommit 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 informationConcurrency 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 informationABORTING 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