Fully persistent data structures for disjoint set union problems

Author(s):  
Giuseppe F. Italiano ◽  
Neil Sarnak
1997 ◽  
Vol 7 (5) ◽  
pp. 487-513 ◽  
Author(s):  
MELISSA E. O'NEILL ◽  
F. WARREN BURTON

Arrays are probably the most widely used data structure in imperative programming languages, yet functional languages typically only support arrays in a limited manner, or prohibit them entirely. This is not too surprising, since most other mutable data structures, such as trees, have elegant immutable analogues in the functional world, whereas arrays do not. Previous attempts at addressing the problem have suffered from one of three weaknesses, either that they don't support arrays as a persistent data structure (unlike the functional analogues of other imperative data structures), or that the range of operations is too restrictive to support some common array algorithms efficiently, or that they have performance problems. Our technique provides arrays as a true functional analogue of imperative arrays with the properties that functional programmers have come to expect from their data structures. To efficiently support array algorithms from the imperative world, we provide O(1) operations for single-threaded array use. Fully persistent array use can also be provided at O(1) amortized cost, provided that the algorithm satisfies a simple requirement as to uniformity of access. For those algorithms which do not access the array uniformly or single-threadedly, array reads or updates take at most O(log n) amortized time, where n is the size of the array. Experimental results indicate that the overheads of our technique are acceptable in practice for many applications.


Author(s):  
Allen Parrish ◽  
Brandon Dixon ◽  
David Cordes ◽  
Susan Vrbsky ◽  
John Lusth

2021 ◽  
Vol 18 (2) ◽  
pp. 1-26
Author(s):  
Ramin Izadpanah ◽  
Christina Peterson ◽  
Yan Solihin ◽  
Damian Dechev

Emerging byte-addressable Non-Volatile Memories (NVMs) enable persistent memory where process state can be recovered after crashes. To enable applications to rely on persistent data, durable data structures with failure-atomic operations have been proposed. However, they lack the ability to allow users to execute a sequence of operations as transactions. Meanwhile, persistent transactional memory (PTM) has been proposed by adding durability to Software Transactional Memory (STM). However, PTM suffers from high performance overheads and low scalability due to false aborts, logging, and ordering constraints on persistence. In this article, we propose PETRA, a new approach for constructing persistent transactional linked data structures. PETRA natively supports transactions, but unlike PTM, relies on the high-level information from the data structure semantics. This gives PETRA unique advantages in the form of high performance and high scalability. Our experimental results using various benchmarks demonstrate the scalability of PETRA in all workloads and transaction sizes. PETRA outperforms the state-of-the-art PTMs by an order of magnitude in transactions of size greater than one, and demonstrates superior performance in transactions of size one.


2021 ◽  
pp. 505-509
Author(s):  
Matan Rusanovsky ◽  
Hagit Attiya ◽  
Ohad Ben-Baruch ◽  
Tom Gerby ◽  
Danny Hendler ◽  
...  

1994 ◽  
Vol 1 (35) ◽  
Author(s):  
Gerth Stølting Brodal

The problem of making bounded in-degree and out-degree data structures partially persistent is considered. The node copying method of Driscoll <em>et al.</em> is extended so that updates can be performed in <em>worst-case</em> constant time on the pointer machine model. Previously it was only known to be possible in amortised constant time [Driscoll89]. The result is presented in terms of a new strategy for Dietz and Raman's dynamic two player pebble game on graphs. It is shown how to implement the strategy, and the upper bound on the required number of pebbles is improved from 2b + 2d + O(sqrt(b)) to d + 2b, where b is the bound of the in-degree and d the bound of the out-degree. We also give a lower bound that shows that the number of pebbles depends on the out-degree d.


Sign in / Sign up

Export Citation Format

Share Document