English
Related papers

Related papers: A Lock-free Binary Trie

200 papers

The trie data structure is a good choice for finite maps whose keys are data structures (trees) rather than atomic values. But what if we want the keys to be patterns, each of which matches many lookup keys? Efficient matching of this kind…

Programming Languages · Computer Science 2024-11-12 Simon Peyton Jones , Sebastian Graf

Tree structures are very often used data structures. Among ordered types of trees there are many variants whose basic operations such as insert, delete, search, delete-min are characterized by logarithmic time complexity. In the article I…

Data Structures and Algorithms · Computer Science 2007-08-23 David S. Planeta

It is widely assumed that $O(m+\lg \sigma)$ is the best one can do for finding a pattern of length $m$ in a compacted trie storing strings over an alphabet of size $\sigma$, if one insists on linear-size data structures and deterministic…

Data Structures and Algorithms · Computer Science 2013-02-15 Johannes Fischer , Pawel Gawrychowski

Binary rewriting is a rapidly-maturing technique for modifying software for instrumentation, customization, optimization, and hardening without access to source code. Unfortunately, the practical applications of binary rewriting tools are…

Software Engineering · Computer Science 2022-09-09 Eric Schulte , Michael D. Brown , Vlad Folts

This paper proposes a modification to the traditional binary search algorithm in which it checks the presence of the input element with the middle element of the given set of elements at each iteration. Modified binary search algorithm…

Data Structures and Algorithms · Computer Science 2014-06-09 Ankit R. Chadha , Rishikesh Misal , Tanaya Mokashi

Indexing a set of strings for prefix search or membership queries is a fundamental task with many applications such as information retrieval or database systems. A classic abstract data type for modelling such an index is a trie. Due to the…

Data Structures and Algorithms · Computer Science 2024-03-11 Hideo Bannai , Keisuke Goto , Shunsuke Kanda , Dominik Köppl

In this paper, we present a new data structure called the packed compact trie (packed c-trie) which stores a set $S$ of $k$ strings of total length $n$ in $n \log\sigma + O(k \log n)$ bits of space and supports fast pattern matching queries…

Data Structures and Algorithms · Computer Science 2017-10-11 Takuya Takagi , Shunsuke Inenaga , Kunihiko Sadakane , Hiroki Arimura

The test-and-set object is a fundamental synchronization primitive for shared memory systems. A test-and-set object stores a bit, initialized to 0, and supports one operation, test&set(), which sets the bit's value to 1 and returns its…

Distributed, Parallel, and Cluster Computing · Computer Science 2016-08-23 George Giakkoupis , Maryam Helmi , Lisa Higham , Philipp Woelfel

Given a real dataset and a computation family, we wish to encode and store the dataset in a distributed system so that any computation from the family can be performed by accessing a small number of nodes. In this work, we focus on the…

Information Theory · Computer Science 2024-05-10 Vinayak Ramkumar , Netanel Raviv , Itzhak Tamo

We present highly optimized data structures for the dynamic predecessor problem, where the task is to maintain a set $S$ of $w$-bit numbers under insertions, deletions, and predecessor queries (return the largest element in $S$ no larger…

Data Structures and Algorithms · Computer Science 2021-04-15 Patrick Dinklage , Johannes Fischer , Alexander Herlez

A data structure is called history independent if its internal memory representation does not reveal the history of operations applied to it, only its current state. In this paper we study history independence for concurrent data…

Distributed, Parallel, and Cluster Computing · Computer Science 2024-07-19 Hagit Attiya , Michael A. Bender , Martin Farach-Colton , Rotem Oshman , Noa Schiller

Data structures that realize a dictionary are characterized by three basic instructions: (1) Insert (a new entry <key,value>). (2) Search by a key, returning the associated value. (3) Delete an entry. Known realizations are hashing schemes…

Logic · Mathematics 2016-09-06 Josef Schoenbrunner

Tree data structures, such as red-black trees, quad trees, treaps, or tries, are fundamental tools in computer science. A classical problem in concurrency is to obtain expressive, efficient, and scalable versions of practical tree data…

Databases · Computer Science 2023-10-10 Ilya Kokorin , Dan Alistarh , Vitaly Aksenov

The paper proposes a new static analysis designed to handle open programs, i.e., fragments of programs, with dynamic pointer-linked data structures - in particular, various kinds of lists - that employ advanced low-level pointer operations.…

Logic in Computer Science · Computer Science 2022-05-06 Lukáš Holík , Petr Peringer , Adam Rogalewicz , Veronika Šoková , Tomáš Vojnar , Florian Zuleger

Design of an efficient thread-safe concurrent data structure is a balancing act between its implementation complexity and performance. Lock-based concurrent data structures, which are relatively easy to derive from their sequential…

Programming Languages · Computer Science 2024-08-27 Callista Le , Kiran Gopinathan , Koon Wen Lee , Seth Gilbert , Ilya Sergey

Because strongly-linearizable objects provide stronger guarantees than linearizability, they serve as valuable building blocks for the design of concurrent data structures. Yet, many objects that have linearizable implementations from base…

Distributed, Parallel, and Cluster Computing · Computer Science 2026-01-01 Faith Ellen , Gal Sela

In this paper we present two analytical frameworks for calculating the performance of lock-free data structures. Lock-free data structures are based on retry loops and are called by application-specific routines. In contrast to previous…

Distributed, Parallel, and Cluster Computing · Computer Science 2016-11-18 Aras Atalar , Paul Renaud-Goud , Philippas Tsigas

An initializable array is an array that supports the read and write operations for any element and the initialization of the entire array. This paper proposes a simple in-place algorithm to implement an initializable array of length $N$…

Data Structures and Algorithms · Computer Science 2022-03-31 Takashi Katoh , Keisuke Goto

We present an approach to implement binary search trees in the rule-based graph programming language GP 2. Our implementation uses GP 2's rooted graph transformation rules to be fast and supports insertion, deletion and query operations. We…

Programming Languages · Computer Science 2026-01-08 Ziad Ismaili Alaoui , Detlef Plump

We describe a data structure that supports access, rank and select queries, as well as symbol insertions and deletions, on a string $S[1,n]$ over alphabet $[1..\sigma]$ in time $O(\lg n/\lg\lg n)$, which is optimal even on binary sequences…

Data Structures and Algorithms · Computer Science 2013-02-04 Gonzalo Navarro , Yakov Nekrich