Persistent object stores
نویسنده
چکیده
The design and development of a type secure persistent object store is presented as part of an architecture to support experiments in concurrency, transactions and distribution. The persistence abstraction hides the physical properties of data from the programs that manipulate it. Consequently, a persistent object store is required to be of unbounded size, infinitely fast and totally reliable. A range of architectural mechanisms that can be used to simulate these three features is presented. Based on a suitable selection of these mechanisms, two persistent object stores are presented. The first store is designed for use with the programming language PS-algol. Its design is evolved to yield a more flexible layered architecture. The layered architecture is designed to provide each distinct architectural mechanism as a separate architectural layer conforming to a specified interface. The motivation for this design is two-fold. Firstly, the particular choice of layers greatly simplifies the resulting implementation and secondly, the layered design can support experimental architecture implementations. Since each layer conforms to a specified interface, it is possible to experiment with the implementation of an individual layer without affecting the implementation of the remaining architectural layers. Thus, the layered architecture is a convenient vehicle for experimenting with the implementation of persistent object stores. An implementation of the layered architecture is presented together with an example of how it may be used to support a distributed system. Finally, the architecture's ability to support a variety of storage configurations is presented.
منابع مشابه
Operating system support for object dependencies in persistent object stores
Persistent object stores provide uniform management of short-term and long-term objects. Such stores ensure the integrity of the data even after occurrence of a failure, by guaranteeing the existence of some previous selfconsistent stable state at each point in time. Maintaining a consistent state of a persistent store necessitates recording of inter-object dependencies and checkpointing of eac...
متن کاملOn Coding Navigation Paths for In-Memory Navigation in Persistent Object Stores
We consider matrix index and navigation index approaches to in-memory navigation of persistent object stores. We demonstrate that both approaches can be re-formulated independently from the used coding technique. We expose the limitations of fixed length coding and the inefficiency of simple continued fractions as a variable length coding technique. The conclusion is that alternative variable l...
متن کاملA Scalable Model of Distribution Promoting Autonomy of and Cooperation between PJava Object Stores
Distributed persistent systems often provide transparency of distribution at the cost of autonomy of object stores, efficiency of cooperation between them and scalability of the system. We propose a flexible model of distribution to support scalable persistent application systems that allows for both autonomous stores with low-cost, limited commitments to other stores and sophisticated models o...
متن کاملTowards a Unified Model of Untyped Object Stores: Experience with the Tycoon Store Protocol
The Tycoon Store Protocol (TSP) specifies a clean interface between the frontend and the backend of fully integrated persistent environments. In contrast to high-level relational or object-oriented database languages, TSP is based on a low level, untyped, but highly flexible tagged store model that is particularly well-suited for the implementation of higher-order persistent polymorphic languag...
متن کاملPMOS: A Complete and Coarse-Grained Incremental Garbage Collector for Persistent Object Stores
Traditional garbage collection techniques designed for language systems operating over transient data do not readily migrate to a persistent context. The size, complexity, and permanence characteristics of a persistent object store mean that an automatic storage reclamation system, in addition to ensuring that all unreachable and only unreachable data is reclaimed, must also maintain store cons...
متن کاملBytecode Instrumentation as an Aid in Understanding the Behavior of Java Persistent Stores
In this paper, we describe the use of BIT (Bytecode Instrumenting Tool) as an aid in understanding the behavior of persistent Java programs and evaluating the implementation of Java persistent stores. BIT is a set of Java classes that allow a user to build customized tools to instrument Java Virtual Machine (JVM) bytecodes. We built a customized tool using BIT to instrument Object Design Inc.’s...
متن کامل