Abstract-Concurrent data structures provide the means to multi-threaded applications to share data. Data structures come with a set of predefined operations, specified by the semantics of the data structure. In the literature and in several contemporary commonly used programming environments, the notion of iteration has been introduced for collection data structures, as a bulk operation enhancing the native set of operations. Iterations in several of these contexts have been treated as sequential in nature and may provide weak consistency guarantees when running concurrently with the native operations of the data structures. In this work we study iterations in concurrent data structures in the context of concurrency with the native operations and the guarantees that they provide. Besides linearizability, we propose a set of consistency specifications for such bulk operations, including also concurrency-aware properties by building on Lamport's systematic definitions for registers. Furthermore, by using queues and composite registers as casestudies of underlying objects, we provide a set of constructions of iteration operations, satisfying the properties and showing containment relations. Besides the trade-off between consistency and throughput, we point out and study tradeoff between the overhead of the bulk operation and possible support (helping) by the native operations of the data structure.
Nikolakopoulos et al. REF considered different consistency specifications of iterators for concurrent data structures.
A Consistency Framework for Iteration Operations in Concurrent Data Structures
2015 IEEE International Parallel and Distributed Processing Symposium
2015 IEEE International Parallel and Distributed Processing Symposium
Computer Science