Analysis and Evaluation of Non-Blocking Interpolation Search Trees

01/02/2020
by   Aleksandar Prokopec, et al.
0

We start by summarizing the recently proposed implementation of the first non-blocking concurrent interpolation search tree (C-IST) data structure. We then analyze the individual operations of the C-IST, and show that they are correct and linearizable. We furthermore show that lookup (and several other non-destructive operations) are wait-free, and that the insert and delete operations are lock-free. We continue by showing that the C-IST has the following properties. For arbitrary key distributions, this data structure ensures worst-case O(log n + p) amortized time for search, insertion and deletion traversals. When the input key distributions are smooth, lookups run in expected O(loglog n + p) time, and insertion and deletion run in expected amortized O(loglog n + p) time, where p is a bound on the number of threads. Finally, we present an extended experimental evaluation of the non-blocking IST performance.

READ FULL TEXT

page 12

page 13

page 14

page 15

page 16

research
12/27/2017

Analysis of Concurrent Lock-Free Hash Tries with Constant-Time Operations

Ctrie is a scalable concurrent non-blocking dictionary data structure, w...
research
08/22/2023

Learned Lock-free Search Data Structures

Non-blocking search data structures offer scalability with a progress gu...
research
11/14/2018

The Amortized Analysis of a Non-blocking Chromatic Tree

A non-blocking chromatic tree is a type of balanced binary search tree w...
research
05/12/2018

Persistent Non-Blocking Binary Search Trees Supporting Wait-Free Range Queries

This paper presents the first implementation of a search tree data struc...
research
10/11/2021

Parallel Batched Interpolation Search Tree

Ordered set (and map) is one of the most used data type. In addition to ...
research
07/27/2023

Wait-Free Updates and Range Search using Uruv

CRUD operations, along with range queries make a highly useful abstract ...
research
08/24/2022

A Simpler Proof that Pairing Heaps Take O(1) Amortized Time per Insertion

The pairing heap is a simple "self-adjusting" implementation of a heap (...

Please sign up or login with your details

Forgot password? Click here to reset