Adapting Persistent Data Structures for Concurrency and Speculation

03/16/2020
by   Thomas Dickerson, et al.
0

This work unifies insights from the systems and functional programming communities, in order to enable compositional reasoning about software which is nonetheless efficiently realizable in hardware. It exploits a correspondence between design goals for efficient concurrent data structures and efficient immutable persistent data structures, to produce novel implementations of mutable concurrent trees with low contention and an efficient snapshot operation to support speculative execution models. It also exploits commutativity to characterize a design space for integrating traditional high-performance concurrent data structures into Software Transactional Memory (STM) runtimes, and extends this technique to yield a novel algorithm for concurrent execution of so-called “smart contracts” (specialized programs which manipulate the state of blockchain ledgers).

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/17/2020

Defining and Verifying Durable Opacity: Correctness for Persistent Software Transactional Memory

Non-volatile memory (NVM), aka persistent memory, is a new paradigm for ...
research
06/01/2018

Table Space Designs For Implicit and Explicit Concurrent Tabled Evaluation

One of the main advantages of Prolog is its potential for the implicit e...
research
07/26/2021

Overview of Bachelors Theses 2021

In this work, we review Bachelors Theses done under the supervision of V...
research
12/19/2022

PathCAS: An Efficient Middle Ground for Concurrent Search Data Structures

To maximize the performance of concurrent data structures, researchers h...
research
07/23/2020

Recursive Variable-Length State Compression for Multi-Core Software Model Checking

High-performance multi-core software typically uses concurrent data stru...
research
12/27/2022

Practically and Theoretically Efficient Garbage Collection for Multiversioning

Multiversioning is widely used in databases, transactional memory, and c...
research
08/10/2021

Metall: A Persistent Memory Allocator For Data-Centric Analytics

Data analytics applications transform raw input data into analytics-spec...

Please sign up or login with your details

Forgot password? Click here to reset