English
Related papers

Related papers: Adaptive Lock-Free Data Structures in Haskell: A G…

200 papers

One of the main challenges in distributed computing is building interfaces and APIs that allow programmers with limited background in distributed systems to write scalable, performant, and fault-tolerant applications on large clusters. In…

Distributed, Parallel, and Cluster Computing · Computer Science 2023-09-19 Yuxi Long , Shiyou Wu , Yingjie Xu

Distributed systems often serve dynamic workloads and resource demands evolve over time. Such a temporal behavior stands in contrast to the static and demand-oblivious nature of most data structures used by these systems. In this paper, we…

Distributed, Parallel, and Cluster Computing · Computer Science 2024-11-19 Arash Pourdamghani , Chen Avin , Robert Sama , Maryam Shiran , Stefan Schmid

An immutable multi-map is a many-to-many thread-friendly map data structure with expected fast insert and lookup operations. This data structure is used for applications processing graphs or many-to-many relations as applied in static…

Data Structures and Algorithms · Computer Science 2016-08-04 Michael J. Steindorfer , Jurgen J. Vinju

Learning-augmented data structures use predicted frequency estimates to retrieve frequently occurring database elements faster than standard data structures. Recent work has developed data structures that optimally exploit these frequency…

Information Retrieval · Computer Science 2025-10-02 Prabhav Goyal , Vinesh Sridhar , Wilson Zheng

The design and implementation of efficient concurrent data structures have seen significant attention. However, most of this work has focused on concurrent data structures providing good \emph{worst-case} guarantees. In real workloads,…

Distributed, Parallel, and Cluster Computing · Computer Science 2020-08-04 Vitaly Aksenov , Dan Alistarh , Alexandra Drozdova , Amirkeivan Mohtashami

Lambda lifting is a well-known transformation, traditionally employed for compiling functional programs to supercombinators. However, more recent abstract machines for functional languages like OCaml and Haskell tend to do closure…

Programming Languages · Computer Science 2019-10-29 Sebastian Graf , Simon Peyton Jones

Index structures are important for efficient data access, which have been widely used to improve the performance in many in-memory systems. Due to high in-memory overheads, traditional index structures become difficult to process the…

Databases · Computer Science 2019-05-16 Pengfei Li , Yu Hua , Pengfei Zuo , Jingnan Jia

In this paper we examine the issues involved in adding concurrency to the Robin Hood hash table algorithm. We present a non-blocking obstruction-free K-CAS Robin Hood algorithm which requires only a single word compare-and-swap primitive,…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-11-15 Robert Kelly , Barak A. Pearlmutter , Phil Maguire

In this paper, we study the partitioning of a context-aware shared memory data structure so that it can be implemented as a distributed data structure running on multiple machines. By context-aware data structures, we mean that the result…

Distributed, Parallel, and Cluster Computing · Computer Science 2025-11-11 Raaghav Ravishankar , Sandeep Kulkarni , Sathya Peri , Gokarna Sharma

State-of-the-art Datalog engines include expressive features such as ADTs (structured heap values), stratified aggregation and negation, various primitive operations, and the opportunity for further extension using FFIs. Current…

Programming Languages · Computer Science 2022-11-22 Thomas Gilray , Arash Sahebolamri , Sidharth Kumar , Kristopher Micinski

We present an efficient and practical lock-free implementation of a concurrent deque that is disjoint-parallel accessible and uses atomic primitives which are available in modern computer systems. Previously known lock-free algorithms of…

Distributed, Parallel, and Cluster Computing · Computer Science 2007-05-23 Håkan Sundell , Philippas Tsigas

In this work, we present a simple, uniform, and elegant solution to the problem, with stunning practical effectiveness and application to virtually any Datalog-based analysis. The approach consists of leveraging the choice construct,…

Software Engineering · Computer Science 2025-03-11 Anastasios Antoniadis , Ilias Tsatiris , Nevill Grech , Yannis Smaragdakis

The size of a data structure (i.e., the number of elements in it) is a widely used property of a data set. However, for concurrent programs, obtaining a correct size efficiently is non-trivial. In fact, the literature does not offer a…

Distributed, Parallel, and Cluster Computing · Computer Science 2022-09-16 Gal Sela , Erez Petrank

Variant Stochastic cracking is a significantly more resilient approach to adaptive indexing. It showed [1]that Stochastic cracking uses each query as a hint on how to reorganize data, but not blindly so; it gains resilience and avoids…

Databases · Computer Science 2013-05-09 Meenesh Bhardwaj

Data structures are a cornerstone of most modern programming languages. Whether they are provided via separate libraries, built into the language specification, or as part of the language's standard library -- data structures such as lists,…

Programming Languages · Computer Science 2025-03-03 Lukas Makor , Sebastian Kloibhofer , Peter Hofer , David Leopoldseder , Hanspeter Mössenböck

Haskell is a popular choice for hosting deeply embedded languages. A recurring challenge for these embeddings is how to seamlessly integrate user defined algebraic data types. In particular, one important, convenient, and expressive feature…

Programming Languages · Computer Science 2022-08-01 Trevor L. McDonell , Joshua D. Meredith , Gabriele Keller

Verification of concurrent data structures is one of the most challenging tasks in software verification. The topic has received considerable attention over the course of the last decade. Nevertheless, human-driven techniques remain…

Programming Languages · Computer Science 2018-11-12 Roland Meyer , Sebastian Wolff

In the use of database systems, the design of the storage engine and data model directly affects the performance of the database when performing queries. Therefore, the users of the database need to select the storage engine and design data…

Databases · Computer Science 2020-08-18 Hongzhi Wang , Yan Wei , Hao Yan

In this demo, we realize data indexes that can morph from being write-optimized at times to being read-optimized at other times nonstop with zero-down time during the workload transitioning. These data indexes are useful for HTAP systems…

Databases · Computer Science 2024-06-14 Lu Xing , Walid G. Aref

In this paper we present a lock-free version of Hopscotch Hashing. Hopscotch Hashing is an open addressing algorithm originally proposed by Herlihy, Shavit, and Tzafrir, which is known for fast performance and excellent cache locality. The…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-11-11 Robert Kelly , Barak A. Pearlmutter , Phil Maguire