scispace - formally typeset
Open AccessBook ChapterDOI

Towards consistency oblivious programming

Reads0
Chats0
TLDR
It is shown empirically that the COP approach can enhance a software transactional memory (STM) framework to deliver more efficient concurrent data structures from serial source code and deliver performance comparable to that of more complex fine-grained structures.
Abstract
It is well known that guaranteeing program consistency when accessing shared data comes at the price of degraded performance and scalability. This paper initiates the investigation of consistency oblivious programming (COP). In COP, sections of concurrent code that meet certain criteria are executed without checking for consistency. However, checkpoints are added before any shared data modification to verify the algorithm was on the right track, and if not, it is re-executed in a more conservative and expensive consistent way. We show empirically that the COP approach can enhance a software transactional memory (STM) framework to deliver more efficient concurrent data structures from serial source code. In some cases the COP code delivers performance comparable to that of more complex fine-grained structures.

read more

Content maybe subject to copyright    Report

Citations
More filters
Proceedings ArticleDOI

Software partitioning of hardware transactions

TL;DR: This work describes a programming technique and compiler support to reduce both overflow and conflict rates by partitioning common operations into read- mostly (planning) and write-mostly (completion) operations, which then execute separately.
Proceedings ArticleDOI

Analysing Snapshot Isolation

TL;DR: An alternative specification to SI is given that characterises it in terms of transactional dependency graphs of Adya et al., generalising serialization graphs, and does not require adding additional information to dependency graphs about start and commit points of transactions.
Proceedings ArticleDOI

Leaplist: lessons learned in designing tm-supported range queries

TL;DR: It is shown how software transactional memory support in a commercial compiler helped to create an efficient lock-based implementation of Leaplist, a concurrent data-structure that is tailored to provide linearizable range queries and outperforms the Skiplist's non-linearizable range query operations by an order of magnitude.

Leaplist: lessons learned in designing tm-supported range queries

TL;DR: Leaplist as mentioned in this paper is a concurrent data-structure that is tailored to provide linearizable range queries, where each node holds up to K immutable key-value pairs, so collecting a linearizable ranges is K times faster than the same operation performed non-linearizably on a Skiplist.
Book ChapterDOI

Range Queries in Non-blocking k -ary Search Trees

TL;DR: Performance experiments show that, for workloads containing small range queries, the k-ST significantly outperforms other algorithms which support these operations, and rivals the performance of a leading concurrent skip-list, which provides range queries that cannot always be linearized.
References
More filters
Book

Introduction to Algorithms, Second Edition

TL;DR: The complexity class P is formally defined as the set of concrete decision problems that are polynomial-time solvable, and encodings are used to map abstract problems to concrete problems.
Proceedings ArticleDOI

Software transactional memory for dynamic-sized data structures

TL;DR: A new form of software transactional memory designed to support dynamic-sized data structures, and a novel non-blocking implementation of this STM that uses modular contention managers to ensure progress in practice.
Book ChapterDOI

Transactional locking II

TL;DR: TL2 as mentioned in this paper is a software transactional memory (STM) algorithm based on a combination of commit-time locking and a novel global version-clock based validation technique, which is ten times faster than a single lock.