History-Independent Concurrent Objects
Hagit Attiya, Michael A. Bender, Martin Farach-Colton, Rotem Oshman, Noa Schiller
TL;DR
This work initiates a thorough study of history independence (HI) for concurrent data structures, formalizing WHI/SHI in a concurrent setting and introducing weaker HI notions (state-quiescent HI, quiescent HI) to address non-quiescent executions. It proves strong impossibility results: for a broad class of objects, there is no wait-free HI implementation from smaller base objects; yet it provides a powerful universal HI construction from large CAS/LLSC primitives, yielding a wait-free, state-quiescent HI implementation for any object. The key technical advance is a universal HI architecture built from context-aware LLSC (R-LLSC) that can be implemented from atomic CAS, alongside a suite of supporting results (lock-free HI R-LLSC, quiescent HI variants) that demonstrate how to erase history while preserving linearizability. The findings illuminate fundamental limits and opportunities for secure, history-preserving memory representations in concurrent systems, offering concrete algorithms and a roadmap for applying HI in practice and guiding future work on randomized HI and broader object classes.
Abstract
A data structure is called history independent if its internal memory representation does not reveal the history of operations applied to it, only its current state. In this paper we study history independence for concurrent data structures, and establish foundational possibility and impossibility results. We show that a large class of concurrent objects cannot be implemented from smaller base objects in a manner that is both wait-free and history independent; but if we settle for either lock-freedom instead of wait-freedom or for a weak notion of history independence, then at least one object in the class, multi-valued single-reader single-writer registers, can be implemented from smaller base objects, binary registers. On the other hand, using large base objects, we give a strong possibility result in the form of a universal construction: an object with $s$ possible states can be implemented in a wait-free, history-independent manner from compare-and-swap base objects that each have $O(s + 2^n)$ possible memory states, where $n$ is the number of processes in the system.
