Making data structures confluently persistent

Research output: Contribution to journalArticlepeer-review

Abstract

We address a longstanding open problem of [J.R. Driscoll, N. Sarnak, D. Sleator, R. Tarjan, J. Comput. System Sci. 38 (1989) 86-124, J. Driscoll, D. Sleator, R. Tarjan, J. ACM, 41 (5) (1994) 943-959], and present a general transformation that transforms any pointer based data structure to be confluently persistent. Such transformations for fully persistent data structures are given in [J.R. Driscoll, N. Sarnak, D. Sleator, R. Tarjan, J. Comput. System Sci. 38 (1989) 86-124], greatly improving the performance compared to the naive scheme of simply copying the inputs. Unlike fully persistent data structures, where both the naive scheme and the fully persistent scheme of [J.R. Driscoll, N. Sarnak, D. Sleator, R. Tarjan, J. Comput. System Sci. 38 (1989) 86-124] are feasible, we show that the naive scheme for confluently persistent data structures is itself infeasible (requires exponential space and time). Thus, prior to this paper there was no feasible method for making any data structure confluently persistent at all. Our methods give an exponential reduction in space and time compared to the naive method, placing confluently persistent data structures in the realm of possibility.

Original languageEnglish
Pages (from-to)16-58
Number of pages43
JournalJournal of Algorithms
Volume48
Issue number1
DOIs
StatePublished - Aug 2003

Fingerprint

Dive into the research topics of 'Making data structures confluently persistent'. Together they form a unique fingerprint.

Cite this