DMITRI PERELMAN ANTON BYSHEVSKY OLEG LITMANOVICH IDIT KEIDAR DISC 2011 SMV: Selective Multi-Versioning STM 1.

Slides:



Advertisements
Similar presentations
CM20145 Concurrency Control
Advertisements

Enabling Speculative Parallelization via Merge Semantics in STMs Kaushik Ravichandran Santosh Pande College.
Concurrent programming: From theory to practice Concurrent Algorithms 2014 Vasileios Trigonakis Georgios Chatzopoulos.
Exploiting Distributed Version Concurrency in a Transactional Memory Cluster Kaloian Manassiev, Madalin Mihailescu and Cristiana Amza University of Toronto,
Steal-on-abort Improving Transactional Memory Performance through Dynamic Transaction Reordering Mohammad Ansari University of Manchester.
Presented by: Dmitri Perelman.  Intro  “Don’t touch my read-set” approach  “Precedence graphs” approach  On avoiding spare aborts  Your questions.
IDIT KEIDAR DMITRI PERELMAN RUI FAN EuroTM 2011 Maintaining Multiple Versions in Software Transactional Memory 1.
Monitoring Data Structures Using Hardware Transactional Memory Shakeel Butt 1, Vinod Ganapathy 1, Arati Baliga 2 and Mihai Christodorescu 3 1 Rutgers University,
Virendra J. Marathe, William N. Scherer III, and Michael L. Scott Department of Computer Science University of Rochester Presented by: Armand R. Burks.
Inherent limitations on DAP TMs 1 Inherent Limitations on Disjoint-Access Parallel Transactional Memory Hagit Attiya, Eshcar Hillel, Alessia Milani Technion.
Pessimistic Software Lock-Elision Nir Shavit (Joint work with Yehuda Afek Alexander Matveev)
1 Database Replication Using Generalized Snapshot Isolation Sameh Elnikety, EPFL Fernando Pedone, USI Willy Zwaenepoel, EPFL.
Multiversion Access Methods - Temporal Indexing. Basics A data structure is called : Ephemeral: updates create a new version and the old version cannot.
PARALLEL PROGRAMMING with TRANSACTIONAL MEMORY Pratibha Kona.
Presented by: Ofer Kiselov & Omer Kiselov Supervised by: Dmitri Perelman Final Presentation.
DMITRI PERELMAN IDIT KEIDAR TRANSACT 2010 SMV: Selective Multi-Versioning STM 1.
Idit Keidar and Dmitri Perelman Technion 1 SPAA 2009.
1 Johannes Schneider Transactional Memory: How to Perform Load Adaption in a Simple And Distributed Manner Johannes Schneider David Hasenfratz Roger Wattenhofer.
University of Michigan Electrical Engineering and Computer Science 1 Parallelizing Sequential Applications on Commodity Hardware Using a Low-Cost Software.
CS510 Advanced OS Seminar Class 10 A Methodology for Implementing Highly Concurrent Data Objects by Maurice Herlihy.
Temporal Indexing MVBT. Temporal Indexing Transaction time databases : update the last version, query all versions Queries: “Find all employees that worked.
TM Input Acceptance Vincent Gramoli, Derin Harmanci, Pascal Felber EPFL LPD - University of Neuchâtel Switzerland.
1 An Efficient On-the-Fly Cycle Collection Harel Paz, Erez Petrank - Technion, Israel David F. Bacon, V. T. Rajan - IBM T.J. Watson Research Center Elliot.
Overview  Strong consistency  Traditional approach  Proposed approach  Implementation  Experiments 2.
Everest: scaling down peak loads through I/O off-loading D. Narayanan, A. Donnelly, E. Thereska, S. Elnikety, A. Rowstron Microsoft Research Cambridge,
Transaction. A transaction is an event which occurs on the database. Generally a transaction reads a value from the database or writes a value to the.
The Design and Implementation of a Log-Structured File System Presented by Carl Yao.
Sun NFS Distributed File System Presentation by Jeff Graham and David Larsen.
Transactions and Reliability. File system components Disk management Naming Reliability  What are the reliability issues in file systems? Security.
Evaluating the Running Time of a Communication Round over the Internet Omar Bakr Idit Keidar MIT MIT/Technion PODC 2002.
Orbe: Scalable Causal Consistency Using Dependency Matrices & Physical Clocks Jiaqing Du, EPFL Sameh Elnikety, Microsoft Research Amitabha Roy, EPFL Willy.
Automatic Data Partitioning in Software Transactional Memories Torvald Riegel, Christof Fetzer, Pascal Felber (TU Dresden, Germany / Uni Neuchatel, Switzerland)
Copyright 2007 Sun Microsystems, Inc SNZI: Scalable Non-Zero Indicator Yossi Lev (Brown University & Sun Microsystems Laboratories) Joint work with: Faith.
Reduced Hardware NOrec: A Safe and Scalable Hybrid Transactional Memory Alexander Matveev Nir Shavit MIT.
School of Information Technologies Michael Cahill 1, Uwe Röhm and Alan Fekete School of IT, University of Sydney {mjc, roehm, Serializable.
A Qualitative Survey of Modern Software Transactional Memory Systems Virendra J. Marathe Michael L. Scott.
Resolving Journaling of Journal Anomaly in Android I/O: Multi-Version B-tree with Lazy Split Wook-Hee Kim 1, Beomseok Nam 1, Dongil Park 2, Youjip Won.
Lowering the Overhead of Software Transactional Memory Virendra J. Marathe, Michael F. Spear, Christopher Heriot, Athul Acharya, David Eisenstat, William.
JVSTM and its applications João Software Engineering Group.
Robustness in the Salus scalable block store Yang Wang, Manos Kapritsos, Zuocheng Ren, Prince Mahajan, Jeevitha Kirubanandam, Lorenzo Alvisi, and Mike.
On the Performance of Window-Based Contention Managers for Transactional Memory Gokarna Sharma and Costas Busch Louisiana State University.
Optimistic Methods for Concurrency Control By: H.T. Kung and John Robinson Presented by: Frederick Ramirez.
1 Multiversion Reconciliation for Mobile Databases Shirish Hemanath Phatak & B.R.Badrinath Presented By Presented By Md. Abdur Rahman Md. Abdur Rahman.
Wait-Free Multi-Word Compare- And-Swap using Greedy Helping and Grabbing Håkan Sundell PDPTA 2009.
Range Queries in Non-blocking k-ary Search Trees Trevor Brown Hillel Avni.
CS333 Intro to Operating Systems Jonathan Walpole.
A Multiversion Update-Serializable Protocol for Genuine Partial Data Replication Sebastiano Peluso, Pedro Ruivo, Paolo Romano, Francesco Quaglia and Luís.
Consistency Oblivious Programming Hillel Avni Tel Aviv University.
Software Transactional Memory Should Not Be Obstruction-Free Robert Ennals Presented by Abdulai Sei.
Martin Kruliš by Martin Kruliš (v1.1)1.
Concurrent Tries with Efficient Non-blocking Snapshots Aleksandar Prokopec Phil Bagwell Martin Odersky École Polytechnique Fédérale de Lausanne Nathan.
HARD: Hardware-Assisted lockset- based Race Detection P.Zhou, R.Teodorescu, Y.Zhou. HPCA’07 Shimin Chen LBA Reading Group Presentation.
Philip A. Bernstein Colin Reid Ming Wu Xinhao Yuan Microsoft Corporation March 7, 2012 Published at VLDB 2011:
Temporal Indexing MVBT. Temporal Indexing Transaction time databases : update the last version, query all versions Queries: “Find all employees that worked.
Tzu-Han Wu Yi-Chi Chiang Han-Yang Ou
Robustness in the Salus scalable block store Yang Wang, Manos Kapritsos, Zuocheng Ren, Prince Mahajan, Jeevitha Kirubanandam, Lorenzo Alvisi, and Mike.
GPFS: A Shared-Disk File System for Large Computing Clusters Frank Schmuck & Roger Haskin IBM Almaden Research Center.
THE EVOLUTION OF CODA M. Satyanarayanan Carnegie-Mellon University.
Running Commodity Operating Systems on Scalable Multiprocessors Edouard Bugnion, Scott Devine and Mendel Rosenblum Presentation by Mark Smith.
Does the Optimistic Concurrency resolve your blocking problems Margarita Naumova, SQL Master Academy.
PHyTM: Persistent Hybrid Transactional Memory
Resource Aware Scheduler – Initial Results
Faster Data Structures in Transactional Memory using Three Paths
Effective Data-Race Detection for the Kernel
Temporal Indexing MVBT.
Temporal Indexing MVBT.
Introduction to NewSQL
Printed on Monday, December 31, 2018 at 2:03 PM.
CSE 451: Operating Systems Autumn 2009 Module 17 Berkeley Log-Structured File System Ed Lazowska Allen Center
Concurrent Cache-Oblivious B-trees Using Transactional Memory
Presentation transcript:

DMITRI PERELMAN ANTON BYSHEVSKY OLEG LITMANOVICH IDIT KEIDAR DISC 2011 SMV: Selective Multi-Versioning STM 1

Aborts of read-only transactions DISC 2011 Read-only transactions are important:  linearizable data structures  DBMS approach for client-server applications (FenixEdu)  taking consistent snapshots (can be long)  checkpoints  process replication  monitoring and statistics Aborting transactions is bad:  decreased performance because of wasted work  the same operation might be aborted multiple times – predictability suffers  operations that do not succeed to finish In case of read-only transactions:  aborts can be totally avoided 2

Multi-Versioning in STM DISC 2011 Keeping multiple versions prevents aborts: 3 o1 o2 CC cannot read the latest version – read the previous one o1 o2 C cannot read the latest version – abort A T1T2T1T2 Single-versioned STMMulti-versioned STM

GC challenge DISC Must clean up the old versions Keeping a list of n past versions is not good enough  some kept versions are useless  some potentially useful versions are removed o1 o2 The sixth version is removed The needed version has been removed A TM keeps the list of 5 past object versions Past versions are kept though they will never be read T1T2

Outline DISC Problems with keeping a constant number of versions SMV: multi-versioning STM that efficiently solves GC problem Evaluation

Constant number of versions – exponential memory growth DISC k versions => k times more memory?  No! It can be much worse…  Consider pointer-based data structures replace 30 with 40 replace 20 with 25 replace 40 with 50 replace 50 with 60 Complete binary tree for a linked list

SMV: Selective Multi-Versioning STM DISC Object-based STM (implemented in Java) Each read-only transaction commits  obtains a consistent snapshot corresponding to its start time Versions are kept as long as they might be needed Read-only transactions are invisible to other transactions  do not modify the metadata, which can be read by the others  avoids cache thrashing

SMV design principles – GC challenge DISC No transaction can know whether a given version can be removed  explicit GC is not possible A version is removed when it has no potential readers Readers are invisible o1 o2 C T1T2 o1 o2 C T2 Kept Removed Indistinguishable

Automated GC in SMV DISC Solution: use auxiliary GC threads provided by managed memory systems  remove unreachable object versions Read-only transactions are invisible to other transactions, but visible to the “see-all” GC threads  theoretically visible  practically invisible  GC threads run infrequently  modest cache-coherency overhead

Selective Multi-Versioning STM – overview DISC latestPoint time point 9 T1 ver = 5 o1o1 data 5 o1 o2 ver = 5 o2o2 data 5 C time point 10 ver = 10 data 10 T1T2 weak references to prev versions ver ≤ start time? The value to be read

Selective Multi-Versioning STM – GC overview DISC latestPoint time point 9 o1o1 data 5 o1 o2 o2o2 data 5 C time point 10 ver = 10 data 10 C time point 11 T1T2 T1 Unneded versiones are GCed automatically

“Unready” time points issue May Committing transaction:  first inserts the new time point  then updates the write-set Potential problem: latestPoint time point 9 T2 ver = 5 o1o1 data 5 ver = 5 o2o2 data 5 time point 10 ver = 10 data 10 ver ≤ start time? reads o 1 and o 2 T1 writes o 1 and o 2 correctness violation! paused

“Unready” time points solution May A time point has a boolean ready flag  comes true when the write-set is updated readyPoint points to the latest time point in the ready prefix latestPoint time point 9 ready = true T2 ver = 5 o1o1 data 5 ver = 5 o2o2 data 5 time point 10 ready = false ver = 10 data 10 ver ≤ start time? reads o 1 and o 2 T1 writes o 1 and o 2 consistent snapshot readyPoint paused

SMV evaluation DISC Compared algorithms:  SMV  TL2 (single versioned baseline)  TL2 with time points (to check the influence of time points)  k-versioned TL2 (k versions for each object)  RWLock Benchmarks:  STMBench7  Vacation from STAMP (to check the overhead)  Red-black tree NUMA server with 8 Quad Core AMD processors

SMV Performance – overhead DISC VacationSTMBench7 write-dominated No gain for workloads without read-only transactions  we measure the overhead of maintaining multiple versions

SMV Performance – throughput gains DISC Great for read-dominated workloads  especially good for long read-only transactions STMBench7 read-dominatedRBTree read-dominated

SMV performance – predictability of read-only operations DISC Maximal time to complete a long read-only operation in STMBench7:  hardly predictable if the number of versions is not enough

Taking a consistent snapshot DISC Added additional “monitoring” thread to Vacation benchmark  periodically attempts to take a consistent snapshot of the data structures ~1.3 seconds to take a snapshot in SMV TL2, 2-versioned or 8-versioned STMs never succeed to complete

Memory demands DISC Heap size limited to 2GB when running write- dominated STMBench7:  any k-versioned STM crashes with OutOfMemoryException  not a problem for selective multi-versioning

Conclusions DISC Multi-versioning can improve STM performance  especially useful for long read-only transactions Keeping a constant number of versions is not efficient  not every needed version can be found  exponential memory growth SMV uses automatic GC capabilities for deleting old versions  the readers stay invisible  SMV achieves the promises of multi-versioning