TL;DR: The Mneme persistent object store is discussed, a fundamental component of the Mneme project, discussing its design and initial prototype, and its specific goals include portability, extensibility, and performance.
Abstract: The Mneme project is an investigation of techniques for integrating programming language and database features to provide better support for cooperative, information-intensive tasks such as computer-aided software engineering. The project strategy is to implement efficient, distributed, persistent programming languages. We report here on the Mneme persistent object store, a fundamental component of the project, discussing its design and initial prototype. Mneme stores objects in a simple and general format, preserving object identity and object interrelationships. Specific goals for the store include portability, extensibility (especially with respect to object management policies), and performance. The model of memory that the store aims at is a single, cooperatively-shared heap, distributed across a collection of networked computers. The initial prototype is intended mainly to explore performance issues and to support object-oriented persistent programming languages. We include performance measurements from the prototype as well as more qualitative results.
TL;DR: In this article, the authors propose a method, system, and computer program product for improving the performance of distributed object systems, where a remote object is replicated to the node of the distributed system from which it is accessed.
Abstract: A method, system, and computer program product for improving the performance of distributed object systems. A remote object is replicated to the node of the distributed system from which it is accessed. The scope of the replication is a transaction. Thereafter, method invocations on the object occur locally, avoiding the performance overhead of frequent round trips to the remote persistent object store. Changes made to a replicated object by a transaction are represented using a tree structure that is internally managed by the application. When an application or application user has made modifications to a replicated object and requests to commit the modifications, a determination is first made as to whether committing the modifications will result in an unacceptable data conflict. If no unacceptable data conflict will occur, and after resolution of those conflicts that can be resolved, the modifications are committed. Nested transactions are supported, where each child transaction may commit or roll back independently.
TL;DR: In this paper, a virtual machine object memory structure includes a contiguous region of virtual address space in which objects are segregated into a new generation space and an old generation space according to the ages of the objects, as well as a permanent object memory (POM) generation space.
Abstract: A virtual machine object memory structure includes a contiguous region of virtual address space in which objects (i.e., temporary objects) are segregated into a new generation space and an old generation space according to the ages of the objects, as well as a permanent object memory (POM) generation space. The POM generation space operates as a persistent object cache that is not subject to conventional garbage collection processes. The lifetime of an object in the POM generation space relates to the frequency at which objects are copied from a persistent object store (e.g., disk storage) and shared object cache, rather than garbage collection processes relating to the new generation space and the old generation space.
TL;DR: The paper describes the techniques used in THOR to meet the challenge of providing good performance in spite of the need to manage very large numbers of very small objects and substantially outperforms a system based on memory mapped files, even though that system provides much less functionality.
Abstract: THOR is a persistent object store that provides a powerful programming model. THOR ensures that persistent objects are accessed only by calling their methods and it supports atomic transactions. The result is a system that allows applications to share objects safely across both space and time.
The paper describes how the THOR implementation is able to support this powerful model and yet achieve good performance, even in a wide-area, large-scale distributed environment. It describes the techniques used in THOR to meet the challenge of providing good performance in spite of the need to manage very large numbers of very small objects. In addition, the paper puts the performance of THOR in perspective by showing that it substantially outperforms a system based on memory mapped files, even though that system provides much less functionality than THOR.
TL;DR: This work proposes a set of clustering strategies as well as an algorithm which implements them for the O 2 system to minimize the number of I/O operations in data intensive applications.
Abstract: We address the problem of clustering complex data on disk to minimize the number of I/O operations in data intensive applications. We rst focus on the problems related to the design and implementation of clustering strategies. We then propose a set of clustering strategies as well as an algorithm which implements them for the O 2 system.