A Consistency Framework for Iteration Operations in Concurrent Data Structures Yiannis Nikolakopoulos A. Gidenstam M. Papatriantafilou P. Tsigas Distributed.

Slides:



Advertisements
Similar presentations
Fast and Lock-Free Concurrent Priority Queues for Multi-Thread Systems Håkan Sundell Philippas Tsigas.
Advertisements

Wait-Free Queues with Multiple Enqueuers and Dequeuers
© 2005 P. Kouznetsov Computing with Reads and Writes in the Absence of Step Contention Hagit Attiya Rachid Guerraoui Petr Kouznetsov School of Computer.
1 Chapter 4 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Synchronization.
D u k e S y s t e m s Time, clocks, and consistency and the JMM Jeff Chase Duke University.
CSE 486/586, Spring 2014 CSE 486/586 Distributed Systems Consistency Steve Ko Computer Sciences and Engineering University at Buffalo.
Scalable and Lock-Free Concurrent Dictionaries
Wait-Free Reference Counting and Memory Management Håkan Sundell, Ph.D.
Parallel Programming in Distributed Systems Or Distributed Systems in Parallel Programming Philippas Tsigas Chalmers University of Technology Computer.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science and Engineering Washington University in St. Louis.
Concurrent Data Structures in Architectures with Limited Shared Memory Support Ivan Walulya Yiannis Nikolakopoulos Marina Papatriantafilou Philippas Tsigas.
Transactional Memory (TM) Evan Jolley EE 6633 December 7, 2012.
A Mile-High View of Concurrent Algorithms Hagit Attiya Technion.
Lock-free Cuckoo Hashing Nhan Nguyen & Philippas Tsigas ICDCS 2014 Distributed Computing and Systems Chalmers University of Technology Gothenburg, Sweden.
Lock vs. Lock-Free memory Fahad Alduraibi, Aws Ahmad, and Eman Elrifaei.
CS510 Advanced OS Seminar Class 10 A Methodology for Implementing Highly Concurrent Data Objects by Maurice Herlihy.
Review for Test 2 i206 Fall 2010 John Chuang. 2 Topics  Operating System and Memory Hierarchy  Algorithm analysis and Big-O Notation  Data structures.
Comparison Under Abstraction for Verifying Linearizability Daphna Amit Noam Rinetzky Mooly Sagiv Tom RepsEran Yahav Tel Aviv UniversityUniversity of Wisconsin.
Copyright © 2010, Oracle and/or its affiliates. All rights reserved. Who’s Afraid of a Big Bad Lock Nir Shavit Sun Labs at Oracle Joint work with Danny.
SUPPORTING LOCK-FREE COMPOSITION OF CONCURRENT DATA OBJECTS Daniel Cederman and Philippas Tsigas.
Synchronization Methods for Multicore Programming Brendan Lynch.
1 © R. Guerraoui Seth Gilbert Professor: Rachid Guerraoui Assistants: M. Kapalka and A. Dragojevic Distributed Programming Laboratory.
Algorithms for Synchronization and Consistency in Concurrent System Services Anders Gidenstam Distributed Computing and Systems group, Department of Computer.
1 Lock-Free Linked Lists Using Compare-and-Swap by John Valois Speaker’s Name: Talk Title: Larry Bush.
Practical and Lock-Free Doubly Linked Lists Håkan Sundell Philippas Tsigas.
Compositional Verification of Termination-Preserving Refinement of Concurrent Programs Hongjin Liang Univ. of Science and Technology of China (USTC) Joint.
Parallel Programming Philippas Tsigas Chalmers University of Technology Computer Science and Engineering Department © Philippas Tsigas.
Simple Wait-Free Snapshots for Real-Time Systems with Sporadic Tasks Håkan Sundell Philippas Tsigas.
Behavior of Synchronization Methods in Commonly Used Languages and Systems Yiannis Nikolakopoulos Joint work with: D. Cederman, B.
Software Transactional Memory for Dynamic-Sized Data Structures Maurice Herlihy, Victor Luchangco, Mark Moir, William Scherer Presented by: Gokul Soundararajan.
Linearizability By Mila Oren 1. Outline  Sequential and concurrent specifications.  Define linearizability (intuition and formal model).  Composability.
Understanding Performance of Concurrent Data Structures on Graphics Processors Daniel Cederman, Bapi Chatterjee, Philippas Tsigas Distributed Computing.
Håkan Sundell, Chalmers University of Technology 1 NOBLE: A Non-Blocking Inter-Process Communication Library Håkan Sundell Philippas.
CS4231 Parallel and Distributed Algorithms AY 2006/2007 Semester 2 Lecture 3 (26/01/2006) Instructor: Haifeng YU.
1 CS 430 Database Theory Winter 2005 Lecture 16: Inside a DBMS.
Challenges in Non-Blocking Synchronization Håkan Sundell, Ph.D. Guest seminar at Department of Computer Science, University of Tromsö, Norway, 8 Dec 2005.
Non-blocking Data Structures for High- Performance Computing Håkan Sundell, PhD.
Maged M.Michael Michael L.Scott Department of Computer Science Univeristy of Rochester Presented by: Jun Miao.
Shared Memory Consistency Models. SMP systems support shared memory abstraction: all processors see the whole memory and can perform memory operations.
A Methodology for Creating Fast Wait-Free Data Structures Alex Koganand Erez Petrank Computer Science Technion, Israel.
Executing Parallel Programs with Potential Bottlenecks Efficiently Yoshihiro Oyama Kenjiro Taura Akinori Yonezawa {oyama, tau,
Fence Complexity in Concurrent Algorithms Petr Kuznetsov TU Berlin/DT-Labs.
Elementary Data Organization. Outline  Data, Entity and Information  Primitive data types  Non primitive data Types  Data structure  Definition 
Wait-Free Multi-Word Compare- And-Swap using Greedy Helping and Grabbing Håkan Sundell PDPTA 2009.
Practical concurrent algorithms Mihai Letia Concurrent Algorithms 2012 Distributed Programming Laboratory Slides by Aleksandar Dragojevic.
Range Queries in Non-blocking k-ary Search Trees Trevor Brown Hillel Avni.
Complexity Implications of Memory Models. Out-of-Order Execution Avoid with fences (and atomic operations) Shared memory processes reordering buffer Hagit.
CS510 Concurrent Systems Jonathan Walpole. A Methodology for Implementing Highly Concurrent Data Objects.
CS510 Concurrent Systems Jonathan Walpole. RCU Usage in Linux.
Thread basics. A computer process Every time a program is executed a process is created It is managed via a data structure that keeps all things memory.
A N I N - MEMORY F RAMEWORK FOR E XTENDED M AP R EDUCE 2011 Third IEEE International Conference on Coud Computing Technology and Science.
Concurrent Tries with Efficient Non-blocking Snapshots Aleksandar Prokopec Phil Bagwell Martin Odersky École Polytechnique Fédérale de Lausanne Nathan.
Priority Queues Dan Dvorin Based on ‘The Art of Multiprocessor Programming’, by Herlihy & Shavit, chapter 15.
Non-blocking k-ary Search Trees Trevor Brown – University of Toronto Joanna Helga – York University Ellen, Fatourou, Ruppert, and van Breugel. Non-blocking.
1 The Computability of Relaxed Data Structures: Queues and Stacks as Examples The Computability of Relaxed Data Structures: Queues and Stacks as Examples.
Parallel Data Structures. Story so far Wirth’s motto –Algorithm + Data structure = Program So far, we have studied –parallelism in regular and irregular.
Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects MAGED M. MICHAEL PRESENTED BY NURIT MOSCOVICI ADVANCED TOPICS IN CONCURRENT PROGRAMMING,
Scalable lock-free Stack Algorithm Wael Yehia York University February 8, 2010.
Concurrency and Performance Based on slides by Henri Casanova.
© 2010 IBM Corporation Concurrency Demystified Ajith Ramanath | Senior Developer | JTC-ISL.
Håkan Sundell Philippas Tsigas
Concurrent Data Structures for Near-Memory Computing
Faster Data Structures in Transactional Memory using Three Paths
A Lock-Free Algorithm for Concurrent Bags
Practical Non-blocking Unordered Lists
Anders Gidenstam Håkan Sundell Philippas Tsigas
structures and their relationships." - Linus Torvalds
Concurrent Data Structures Concurrent Algorithms 2017
Yiannis Nikolakopoulos
Parallel Data Structures
Presentation transcript:

A Consistency Framework for Iteration Operations in Concurrent Data Structures Yiannis Nikolakopoulos A. Gidenstam M. Papatriantafilou P. Tsigas Distributed Computing and Systems Chalmers University of Technology Gothenburg, Sweden

Outline Concurrent Data Structures Iteration Operations BackgroundExamples and Research Questions Consistency Definitions Algorithmic Design Contribution Related Work Future Work Conclusions Yiannis Nikolakopoulos 2

Concurrent Data Structures In a multicore system: Share data among different threads/processes Implementations: Fine grained locking Non-blocking Transactional memory based Yiannis Nikolakopoulos 3

Iteration Operations Traditionally: Traverse all the contents of a data structure, regardless of the Abstract Data Type In a concurrency context… What is a consistent iteration? 4 while (Iterator.hasNext()) Iterator.next(); while (Iterator.hasNext()) Iterator.next(); Yiannis Nikolakopoulos

Enqueue Dequeue Concurrent Iteration on a Concurrent Queue 5 Yiannis Nikolakopoulos

Concurrent Iteration on a Concurrent Queue Enqueue Dequeue What about the new node? Will I ever finish? What is a consistent state to return? 6 Yiannis Nikolakopoulos

Enqueue Dequeue Is it ok to return the first nodes? Concurrent Iteration on a Concurrent Queue 7 Yiannis Nikolakopoulos

Increasing support in data structures included in concurrency libraries: – Intel’s Thread Building Blocks – Java –.NET Concurrent Iterations in Programming Frameworks 8 Java.NET snapshot stylemoment-in-time snapshot weakly consistent not a moment-in-time snapshot Yiannis Nikolakopoulos

Consistency Questions Iteration concurrently with modifications? – Traversing a moving path! 9 Is atomic-like behavior too expensive? Any acceptable weaker notions of iteration? Yiannis Nikolakopoulos

Outline Concurrent Data Structures Iteration Operations BackgroundExamples and Research Questions Consistency Definitions Algorithmic Design Contribution Related Work Future Work Conclusions Yiannis Nikolakopoulos 10

Iteration Consistency Specifications Different levels of consistency, building on [Lamport86], [Herlihy90] safeness, weak regularity, regularity, linearizability How hard is it to provide the different consistency levels? Algorithmic designs and implementations, extending a lock-free queue [MS96] 11 Yiannis Nikolakopoulos

Interlude – Reminder: Consistency and Correctness Linearizability [Herlihy90] – Every operation appears to take effect instantaneously within its duration – Every concurrent execution, is mapped to a sequential one Yiannis Nikolakopoulos 12 ENQ(25) ENQ(10) DEQ(): 10DEQ(): 25 time

Iteration: A First Approach On a lock-free concurrent queue [MS96] A simple Scan&Return: Can return a state that never existed 13 Iterate(): {a,b,c} Dequeue():a Enqueue(c)Dequeue():b abc Yiannis Nikolakopoulos b weak regularity

Linearizable Iteration Double – Collect based – Scan once – Validate – Retry if needed Helping from modify ops – Mark nodes with appropriate information 14 Progress: Can get interrupted Efficient in garbage collected environments! Expensive communication Good progress properties Yiannis Nikolakopoulos

Linearizable Iteration: One tricky case Linearizability enforces overlapping iterations to synchronize with each other (total order) Yiannis Nikolakopoulos 15 ENQ(25) ENQ(10) ITRT(): {10} ITRT(): {10,25} time

Regular Iteration Iterations are only enforced to “behave well” with respect to the update ops – May miss/capture different concurrent updates – Always consistent with the update semantics Yiannis Nikolakopoulos 16 ENQ(25) ENQ(10) ITRT(): {10} ITRT(): {10,25} time

Definitions and Trade-offs Safeness Weak regularity Regularity Linearizability Yiannis Nikolakopoulos 17

Iteration Semantics An iteration operation should return a state that: – Is not future – Is not overwritten by a more recently linearized update operation Yiannis Nikolakopoulos 18

Related Work and Iterator Relevance [PBBO2012] Persistent Concurrent Trie – Iteration exploiting immutability (Scala) [PT2013] Linearizable Iteration in Sets – Commutativity is a key Java 8: Stream API – Parallel and Concurrent Map operations on streams, built up using iterations Yiannis Nikolakopoulos 19

Future Work Iteration operations in more complex data structures: – Hash Tables, Binary Trees Consistency definitions framework – Extend in other bulk operations: e.g (regular?) range queries in large in-memory data structures – Need for “partial” iterations: in-memory analytics, data streaming Yiannis Nikolakopoulos 20

Conclusion Concurrent Iteration: consistency challenge Introduce a framework of consistency definitions Algorithmic implementation trade-offs – Consistency vs Performance and Efficiency – Helping methods for Strong Consistency Extend the framework to bulk read operations on dynamic data sets (e.g. IoT and BigData applications) Yiannis Nikolakopoulos 21

References 22 [HW90] Maurice P. Herlihy and Jeannette M. Wing, “Linearizability: a correctness condition for concurrent objects,” ACM Trans. Program. Lang. Syst., vol. 12, no. 3, pp. 463–492, July [L86] L. Lamport, “On interprocess communication,” Distrib Comput, vol. 1, no. 2, pp. 86–101, Jun [MS96] Maged M. Michael and Michael L. Scott, “Simple, fast, and practical non- blocking and blocking concurrent queue algorithms,” in Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing, New York, NY, USA, 1996, PODC ’96, pp. 267–275, ACM. [PT2013] E. Petrank and S. Timnat. Lock-free data-structure iterators. In Distributed Computing, number 8205 in LNCS, pages 224–238. Springer, [PBBO2012] A. Prokopec, N. G. Bronson, P. Bagwell, and M. Odersky. Concurrent tries with efficient non-blocking snapshots. PPoPP ’12, pages 151–160. ACM, Yiannis Nikolakopoulos

BACKUP SLIDES Yiannis Nikolakopoulos 23

Write(25) Registers – [Lamport86] 24 Write(10) Read(): 10 Safeness Read(): 25 Regularity Read(): 10 Atomicity time Yiannis Nikolakopoulos