Academia.eduAcademia.edu

Persistent Data Structure

description58 papers
group1 follower
lightbulbAbout this topic
A persistent data structure is a data structure that maintains its previous versions when modified, allowing access to both the current and historical states. This characteristic enables efficient version control and facilitates functional programming paradigms, where immutability and state preservation are essential.
lightbulbAbout this topic
A persistent data structure is a data structure that maintains its previous versions when modified, allowing access to both the current and historical states. This characteristic enables efficient version control and facilitates functional programming paradigms, where immutability and state preservation are essential.

Key research themes

1. How can persistent memory technology improve the design and performance of persistent data structures?

This theme investigates leveraging byte-addressable persistent memory (PM) technologies—such as phase change memory (PCM) and Intel Optane DC Persistent Memory—to redesign data structures and storage systems. It explores novel mechanisms that harness PM's low latency, persistence, and byte-addressability to achieve atomicity, strong consistency, durability, and scalability in persistent data structures, file systems, hash tables, and synchronization protocols. Research evaluates new algorithms and hardware-software co-designs that minimize overhead from persistence operations and improve recovery after crashes.

Key finding: Introduces BPFS, a file system optimized for byte-addressable persistent memory, using short-circuit shadow paging and atomic 8-byte writes to achieve fine-grained atomic updates. Evaluation on DRAM and simulated PCM shows... Read more
Key finding: Proposes ESH, a scalable hashing scheme tailored for persistent memory that improves load factor, memory utilization, and scalability by redistributing overflow records within hash table segments to delay costly full-table... Read more
Key finding: Presents novel recoverable software combining protocols (PBcomb and PWFcomb) that reduce persistence overhead by minimizing expensive persistence instructions and contention. These protocols achieve strong recoverability and... Read more
Key finding: Develops a hardware-assisted memory management unit (HMMU) combined with software-provided hints to optimize data placement in hybrid memory systems combining DRAM and emerging NVMs like PCM. The approach overcomes hardware... Read more
Key finding: Describes Fleet, a middleware system implementing persistent Java objects replicated over distributed servers with Byzantine fault tolerance. Fleet provides linearizable concurrent semantics, liveness guarantees under benign... Read more

2. What methods enable efficient incremental maintenance and querying of graph-structured persistent data?

This theme addresses the challenges of managing persistent graph-structured data, including how to define materialized and virtual views, maintain these views incrementally after base data modifications, and extract meaningful graph-theoretical features for persistent analysis. Research explores generalizations of views and persistence beyond relational models, rank-based and indexing-aware persistence functions for graphs and directed graphs, facilitating efficient updates and queries on complex, linked data structures common in modern applications like social networks and Web data.

Key finding: Introduces rank-function-based and indexing-aware persistence functions tailored for graphs and directed graphs, avoiding reliance on traditional simplicial homology constructions. Defines 'simple' and 'single-vertex'... Read more

3. How can persistent object-oriented models effectively manage large volumes of structured data with efficient storage and querying, especially when using programming languages like C++?

This theme investigates the design and implementation of persistent object-oriented data models that divide object representation between memory and disk to handle large, interconnected datasets. It examines approaches to partition objects into transient identifiers in RAM and bulk data stored separately, enabling efficient queries without reading entire objects. Research focuses on native query capabilities embedded in languages like C++, navigational data access, and file naming schemes to optimize storage utilization, query speed, and manageable memory footprints for complex scientific and engineering applications.

Key finding: Proposes partitioning persistent objects into transient parts with object identifiers in RAM and bulk data stored on disk in files named uniquely by object ID, enabling rapid initial searches via file names and deferred deep... Read more

All papers in Persistent Data Structure

This paper demonstrates the power of aspect-orientation by implementing the EJB3.0 persistence framework. Our approach has advantages over existing mapping tools: Flexibility is higher as the functionality can be freely implemented and... more
Enterprise software systems increasingly demand high reliability, scalability, and adaptability as they operate in environments characterized by rapidly evolving business requirements, heterogeneous integrations, and unpredictable runtime... more
Enterprise application ecosystems increasingly depend on object relational mapping frameworks to manage complex transactional workloads while maintaining data integrity, consistency, and scalability across distributed environments.... more
Systems that require high-throughput and fault tolerance, such as key-value stores and databases, are looking to persistent memory to combine the performance of in-memory systems with the data-consistent fault-tolerance of nonvolatile... more
A partially persistent data structure is a data structure which preserves previous versions of itself when it is modified. General theoretical schemes are known (e.g. the fat node method ) for making any data structure partially... more
for their contributions to the implementation of JaphaVM. It was great belonging to this team. I owe a great debt to Pedro Garcez Monteiro, for his valuable contributions to JaphaVM, first at the LIS lab, and later as an HP colleague.... more
SummaryCurrent computer systems separate main memory from storage, and programming languages typically reflect this distinction using different representations for data in memory and storage. However, moving data back and forth between... more
The Data Access Tier, also known as the Data Access Layer (DAL), is a specific tier within the 3-tier architecture or other software architectural patterns. The interaction between the application's business logic and the underlying data... more
The Grasshopper operating system provides explicit support for orthogonal persistence. A consequence of this is that the kernel itself must, in part, be persistent. To conform to the model of persistence in Grasshopper, the kernel... more
We present KITTy (Kit d'Interfaçage Tout Terrain), a package programmed in Max/MSP allowing users to design their own network of integrated external patches. This package provides persistence and state-storage mechanisms within a network... more
Building object-oriented applications which access relational data introduces a number of technical issues for developers who are making the transition to C++. We describe these issues and discuss how we have addressed them in... more
This paper presents a generic approach for deriving detectably recoverable implementations of many widely-used concurrent data structures. Such implementations are appealing for emerging systems featuring byte-addressable non-volatile... more
The emergence of systems with non-volatile main memory (NVM) increases the interest in the design of recoverable concurrent objects that are robust to crash-failures, since their operations are able to recover from such failures by using... more
The NoSQL systems make it possible to manage Databases (DB) verifying the 3Vs: Volume, Variety and Velocity. Most of these systems are characterized by the property schemaless which means absence of the data schema when creating a DB.... more
After the introduction of Persistent Memory in the form of Intel’s Optane DC Persistent Memory on the market in 2019, it has found its way into manifold applications and systems. As Google and other cloud infrastructure providers are... more
In this paper we consider mechanisms for supporting recoverable-persistence in a single address space memory model. In particular, we consider a memory management system, MMS, for a persistent single address space and show how the... more
The language Java is enjoying a rapid rise in popularity as an application programming language. For many applications an effective provision of database facilities is required. Here we report on a particular approach to providing such... more
We present a fully lock-free variant of our recent Montage system for persistent data structures. The variant, nbMontage, adds persistence to almost any nonblocking concurrent structure without introducing significant overhead or blocking... more
Persistent object systems greatly simplify programming tasks since they hide the traditional distinction between short-term and long-term storage from the applications programmer. As a result, the programmer can operate at a level of... more
The Grasshopper operating system provides explicit support for orthogonal persistence. A consequence of this is that the kernel itself must, in part, be persistent. To conform to the model of persistence in Grasshopper, the kernel... more
Smart systems are characterised by their ability to analyse measured data in live and to react to changes according to expert rules. Therefore, such systems exploit appropriate data models together with actions, triggered by... more
This ISR presents the results of the analysis of NICMOS persistence data taken as part of the Servicing Mission Orbital Verification (SMOV). This test is a sequel to the System Level Thermal Vacuum (SLTV) persistence tests performed with... more
Developers often use microbenchmarking tools to evaluate the performance of a Java program. These tools run a small section of code multiple times and measure its performance. However, this process can be problematic as Java execution is... more
We present history-independent alternatives to a B-tree, the primary indexing data structure used in databases. A data structure is history independent (HI) if it is impossible to deduce any information by examining the bit representation... more
The goal of the Persistent Programming Research Group is the provision of an environment which incorporates the principle of orthogonal persistence in order to facilitate the production of large and complex software. A database management... more
Here we describe a browser that provides a two and a half dimensional viewing mechanism for persistent data structures. The browser is an adaptive program which learns about its environment; this knowledge is stored in the persistent... more
After the introduction of Persistent Memory in the form of Intel’s Optane DC Persistent Memory on the market in 2019, it has found its way into manifold applications and systems. As Google and other cloud infrastructure providers are... more
After the introduction of Persistent Memory in the form of Intel’s Optane DC Persistent Memory on the market in 2019, it has found its way into manifold applications and systems. As Google and other cloud infrastructure providers are... more
This paper uses the persistent object system PCLOS to survey some problems and benefits of object persistence. The system is analyzed along several relevant dimensions. PCLOS provides object persistence for an object-oriented language.... more
We present KITTy (Kit d'Interfaçage Tout Terrain), a package programmed in Max/MSP allowing users to design their own network of integrated external patches. This package provides persistence and state-storage mechanisms within a network... more
After the introduction of Persistent Memory in the form of Intel’s Optane DC Persistent Memory on the market in 2019, it has found its way into manifold applications and systems. As Google and other cloud infrastructure providers are... more
Modern web-based applications are often built as multi-tier architecture using persistence middleware. Middleware technology providers recommend the use of Optimistic Concurrency Control (OCC) mechanism to avoid the risk of blocked... more
We address the challenge of managing large amounts of numerical data within computing grids consisting of a federation of clusters. We claim that storing, accessing, updating and sharing such data should be considered by applications as... more
Grid computing has recently emerged as a response to the growing demand for resources (processing power, storage, etc.) exhibited by scientific applications. We address the challenge of sharing large amounts of data on such... more
Grid computing has recently emerged as a response to the growing demand for resources (processing power, storage, etc.) exhibited by scientific applications. We address the challenge of sharing large amounts of data on such... more
Storage Class Memory (SCM) blends the best properties of main memory and hard disk drives. It offers non-volatility and byte addressability, and promises short access times with low cost per bit. Earlier research in this field explored... more
textabstractAn immutable multi-map is a many-to-many thread-friendly map data structure with expected fast insert and lookup operations. This data structure is used for applications processing graphs or many-to-many relations as applied... more
Collection data structures in standard libraries of programming languages are designed to excel for the average case by carefully balancing memory footprint and runtime performance. These implicit design decisions and hard-coded... more
The data structures underpinning collection API (e.g. lists, sets, maps) in the standard libraries of programming languages are used intensively in many applications. The standard libraries of recent Java Virtual Machine languages, such... more
A partially persistent data structure is a data structure which preserves previous versions of itself when it is modified. General theoretical schemes are known (e.g. the fat node method) for making any data structure partially... more
The recent rise of the NoSQL movement motivates investigation on the performance impact that new persistence approaches can bring in the model-driven re-engineering of a consolidated object-oriented software architecture. We report... more
Download research papers for free!