Making data structures confluently persistent

  • Authors:
  • Amos Fiat;Haim Kaplan

  • Affiliations:
  • School of computer science, Tel Aviv University, Tel Aviv 69978, Israel;School of computer science, Tel Aviv University, Tel Aviv 69978, Israel

  • Venue:
  • Journal of Algorithms - Special issue: Twelfth annual ACM-SIAM symposium on discrete algorithms
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

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.