Table of Contents
Fetching ...

New Concurrent Order Maintenance Data Structure

Bin Guo, Emil Sekerinski

TL;DR

A new parallel OM data structure that supports insertions, deletions, and comparisons in parallel is proposed and one big advantage is that the comparisons are lock-free so that they can execute highly in parallel with other insertions and deletions.

Abstract

The \emph{Order-Maintenance} (OM) data structure maintains a total order list of items for insertions, deletions, and comparisons. As a basic data structure, OM has many applications, such as maintaining the topological order, core numbers, and truss in graphs, and maintaining ordered sets in Unified Modeling Language (UML) Specification. The prevalence of multicore machines suggests parallelizing such a basic data structure. This paper proposes a new parallel OM data structure that supports insertions, deletions, and comparisons in parallel. Specifically, parallel insertions and deletions are synchronized by using locks efficiently, which achieve up to $7$x and $5.6$x speedups with $64$ workers. One big advantage is that the comparisons are lock-free so that they can execute highly in parallel with other insertions and deletions, which achieve up to $34.4$x speedups with $64$ workers. Typical real applications maintain order lists that always have a much larger portion of comparisons than insertions and deletions. For example, in core maintenance, the number of comparisons is up to 297 times larger compared with insertions and deletions in certain graphs. This is why the lock-free order comparison is a breakthrough in practice.

New Concurrent Order Maintenance Data Structure

TL;DR

A new parallel OM data structure that supports insertions, deletions, and comparisons in parallel is proposed and one big advantage is that the comparisons are lock-free so that they can execute highly in parallel with other insertions and deletions.

Abstract

The \emph{Order-Maintenance} (OM) data structure maintains a total order list of items for insertions, deletions, and comparisons. As a basic data structure, OM has many applications, such as maintaining the topological order, core numbers, and truss in graphs, and maintaining ordered sets in Unified Modeling Language (UML) Specification. The prevalence of multicore machines suggests parallelizing such a basic data structure. This paper proposes a new parallel OM data structure that supports insertions, deletions, and comparisons in parallel. Specifically, parallel insertions and deletions are synchronized by using locks efficiently, which achieve up to x and x speedups with workers. One big advantage is that the comparisons are lock-free so that they can execute highly in parallel with other insertions and deletions, which achieve up to x speedups with workers. Typical real applications maintain order lists that always have a much larger portion of comparisons than insertions and deletions. For example, in core maintenance, the number of comparisons is up to 297 times larger compared with insertions and deletions in certain graphs. This is why the lock-free order comparison is a breakthrough in practice.
Paper Structure (30 sections, 2 theorems, 2 equations, 8 figures, 2 tables, 3 algorithms)

This paper contains 30 sections, 2 theorems, 2 equations, 8 figures, 2 tables, 3 algorithms.

Key Result

Theorem 4.1

When splitting full groups (line 14), the Order Snapshot is preserved.

Figures (8)

  • Figure 1: An example of core maintenance by using OM data structure. The letters outside circles are vertices' IDs, the numbers inside circles are vertices' core numbers, and the $O_k$ is the $k$-order of vertices with the core number $k$ maintained by OM data structure.
  • Figure 2: The number of OM operations for core maintenance by inserting $100,000$ random edges into each graph.
  • Figure 3: An example of the OM data structure with $N=16$. The squares are groups located in a single double-linked top-list with a head $h^t$ and a tail $t^t$. The circles are items with pointers to their own groups, located in a single double-linked bottom-list. The beside numbers are corresponding labels to items and groups. (a) the initial state of $\mathbb{O} = \{v_1, v_2, v_3, v_4\}$. (b) the intermediate state of $\mathbb{O} = \{v_1, v_2, v_3, v_4, v_5, v_6\}$. (c) after inserting a new item $u$ (dashed cycles) after $v_1$, we get $\mathbb{O}=\{v_1, u, v_2, v_3, v_4, v_5, v_6\}$ by inserting a new group $g$ (dashed square).
  • Figure 4: An example of the AssignLabel procedure.
  • Figure 5: Evaluating the running times.
  • ...and 3 more figures

Theorems & Definitions (10)

  • Example 1.1
  • Definition 3.1: Order Snapshot
  • Example 3.1: Insert
  • Example 4.1: Parallel Insert
  • Example 4.2: Assign Label
  • Theorem 4.1
  • proof
  • Theorem 4.2
  • proof
  • Example 4.3: Order