Results 11 - 20
of
263
The Design of the E Programming Language
- ACM Transactions on Programming Languages and Systems
, 1993
"... E is an extension of C++ designed for writing software systems to support persistent applications. Originally designed as a language for implementing database systems, E has evolved into a general persistent programming language E was the first C++ extension to support transparent persistence, the f ..."
Abstract
-
Cited by 57 (3 self)
- Add to MetaCart
E is an extension of C++ designed for writing software systems to support persistent applications. Originally designed as a language for implementing database systems, E has evolved into a general persistent programming language E was the first C++ extension to support transparent persistence, the first C++ implementation to support generic classes, and remains the only C++ extension to provide general-purpose lterators, In addition to its contributions to the C + + programming domain, work on E has made several contributions to the field of persmtent languages in general, including several distinct implementations of persistence. Thm paper describes the main features of E and shows through examples how E addresses many of the problems that arise in building persistent systems.
Safe and Efficient Sharing of Persistent Objects in Thor
, 1996
"... Thor is an object-oriented database system designed for use in a heterogeneous distributed environment. It provides highly-reliable and highly-available persistent storage for objects, and supports safe sharing of these objects by applications written in different programming languages. Safe hetero ..."
Abstract
-
Cited by 57 (12 self)
- Add to MetaCart
Thor is an object-oriented database system designed for use in a heterogeneous distributed environment. It provides highly-reliable and highly-available persistent storage for objects, and supports safe sharing of these objects by applications written in different programming languages. Safe heterogeneous sharing of long-lived objects requires encapsulation: the system must guarantee that applications interact with objects only by invoking methods. Although safety concerns are important, most object-oriented databases forgo safety to avoid paying the associated performance costs. This paper gives an overview of Thor's design and implementation. We focus on two areas that set Thor apart from other objectoriented databases. First, we discuss safe sharing and techniques for ensuring it; we also discuss ways of improving application performance without sacrificing safety. Second, we describe our approach to cache management at client machines, including a novel adaptive prefetching strat...
QuickStore: A High Performance Mapped Object Store
- In ACM SIGMOD Int. Conf. on Management of Data
, 1994
"... This paper presents, QuickStore, a memory-mapped storage system for persistent C++ built on top of the EXODUS Storage Manager. QuickStore provides fast access to in-memory objects by allowing application programs to access objects via normal virtual memory pointers. The paper also presents the resul ..."
Abstract
-
Cited by 55 (1 self)
- Add to MetaCart
This paper presents, QuickStore, a memory-mapped storage system for persistent C++ built on top of the EXODUS Storage Manager. QuickStore provides fast access to in-memory objects by allowing application programs to access objects via normal virtual memory pointers. The paper also presents the results of a detailed performance study using the OO7 benchmark. The study compares the performance of QuickStore with the latest implementation of the E programming language. These systems (QuickStore and E) exemplify the two basic approaches (hardware and software) that have been used to implement persistence in object-oriented database systems. In addition, both systems use the same underlying storage manager and compiler allowing us to make a truly applesto-apples comparison of the hardware and software techniques. 1.
Grasshopper: An orthogonally persistent operating system
, 1994
"... For ten years researchers have been attempting to construct programming language systems that support orthogonal persistence above conventional operating systems. ..."
Abstract
-
Cited by 54 (14 self)
- Add to MetaCart
For ten years researchers have been attempting to construct programming language systems that support orthogonal persistence above conventional operating systems.
Monet. An Impressionist Sketch of an Advanced Database System
- In Proc. IEEE BIWIT workshop
, 1994
"... Monet is a customizable database system developed at CWI and University of Amsterdam, intended to be used as the database backend for widely varying application domains. It is designed to get maximum database performance out of today's workstations and multiprocessor systems. It has already achieved ..."
Abstract
-
Cited by 50 (13 self)
- Add to MetaCart
Monet is a customizable database system developed at CWI and University of Amsterdam, intended to be used as the database backend for widely varying application domains. It is designed to get maximum database performance out of today's workstations and multiprocessor systems. It has already achieved considerable success in supporting a Data Mining application [12, 13], and work is well under way in a project where it is used in a high-end GIS application. Monet is a type- and algebra-extensible database system and employs shared memory parallelism. In this paper, we give the goals and motivation of Monet, and outline its architectural features, including its use of the Decomposed Storage Model (DSM), emphasis on bulk operations, use of main virtual-memory and server customization. As a case example, we discuss some issues on how to build a GIS on top of Monet; amongst others how Monet can handle the very large data volumes involved. Parts of this work are supported by SION grant no. ...
Protection Traps and Alternatives for Memory Management of an Object-Oriented Language
, 1993
"... Many operating systems allow user programs to specify the protection level (inaccessible, read-only, read-write) of pages in their virtual memory address space, and to handle any protection violations that may occur. Such page-protection techniques have been exploited by several user-level algorithm ..."
Abstract
-
Cited by 46 (8 self)
- Add to MetaCart
Many operating systems allow user programs to specify the protection level (inaccessible, read-only, read-write) of pages in their virtual memory address space, and to handle any protection violations that may occur. Such page-protection techniques have been exploited by several user-level algorithms for applications including generational garbage collection and persistent stores. Unfortunately, modern hardware has made efficient handling of page protection faults more difficult. Moreover, page-sized granularity may not match the natural granularity of a given application. In light of these problems, we reevaluate the usefulness of pageprotection primitives in such applications, by comparing the performance of implementations that make use of the primitives with others that do not. Our results show that for certain applications software solutions outperform solutions that rely on page-protection or other related virtual memory primitives.
Building an Integrated Active OODBMS: Requirements, Architecture, and Design Decisions
- In Proceedings of the 11th International Conference on Data Engineering
, 1995
"... Active OODBMSs must provide efficient support for event detection, composition, and rule execution. Previous experience, reported here, building active capabilities on top of existing closed OODBMSs has proven to be ineffective. We propose instead an active OODBMS architecture where event detection ..."
Abstract
-
Cited by 44 (3 self)
- Add to MetaCart
Active OODBMSs must provide efficient support for event detection, composition, and rule execution. Previous experience, reported here, building active capabilities on top of existing closed OODBMSs has proven to be ineffective. We propose instead an active OODBMS architecture where event detection and rule support are tightly integrated with the rest of the core OODBMS functionality. After presenting an analysis of the requirements of active OODBMSs, we discuss event set, rule execution modes, and lifespan of events supported in our architecture. We also discuss the coupling of event composition relative to transaction boundaries. Since building an active OODBMS ex nihilo is extremely expensive, we are building the REACH active OODBMS by extending Texas Instrument 's Open OODB Toolkit. Open OODB is particularly well suited for our purposes because it is the first DBMS whose architecture closely resembles the active database paradigm. It provides low-level event detection and invokes a...
Client-Server Caching Revisited
- In Proceedings of the International Workshop on Distributed Object Management
, 1992
"... The caching of data and/or locks at client workstations is an effective technique for improving the performance of a client-server database system. This paper extends an earlier performance study of client-server caching in several ways. The first is a re-examination of heuristics for deciding dynam ..."
Abstract
-
Cited by 44 (12 self)
- Add to MetaCart
The caching of data and/or locks at client workstations is an effective technique for improving the performance of a client-server database system. This paper extends an earlier performance study of client-server caching in several ways. The first is a re-examination of heuristics for deciding dynamically between propagating changes or invalidating remote copies of data pages in order to maintain cache consistency. The second is a study of the "Callback Locking" family of caching algorithms. These algorithms are of interest because they provide an alternative to the optimistic techniques used in the earlier study and because they have recently begun to find use in commercial systems. In addition, the performance of the caching algorithms is examined in light of current trends in processor and network speeds and in the presence of data contention. 1 INTRODUCTION Object-Oriented Database Systems (OODBMS) are typically designed for use in networks of high-performance workstations and ser...
Local Disk Caching for Client-Server Database Systems
- In Proc. of the Conf. on Very Large Data Bases (VLDB
, 1993
"... The performance and scalability of a client-server database system can be improved by employing client disks for caching. Client disk caching is particularly useful due to the lower cost per byte (compared to memory) and non-volatility of disk storage. Because of performance considerations, however, ..."
Abstract
-
Cited by 41 (8 self)
- Add to MetaCart
The performance and scalability of a client-server database system can be improved by employing client disks for caching. Client disk caching is particularly useful due to the lower cost per byte (compared to memory) and non-volatility of disk storage. Because of performance considerations, however, disk caching is not a straightforward extension of memory caching. In this paper, we examine the performance impacts of adding client disks to the storage hierarchy of a client-server DBMS and investigate the tradeoffs inherent in keeping a large volume of disk-cached data consistent. We describe and analyze four algorithms for managing disk caches. We also address two extensions to cache management algorithms that arise due to the performance characteristics of large disk caches: 1) the need for methods to reduce the work performed by the server for ensuring transaction durability, and 2) techniques for bringing a large disk-resident cache up-to-date after an extended off-line period. 1 In...
HAC: Hybrid Adaptive Caching for Distributed Storage Systems
- In Proc. 17th ACM Symp. on Operating System Principles (SOSP
, 1997
"... This paper presents HAC, a novel technique for managing the client cache in a distributed, persistent object storage system. HAC is a hybrid between page and object caching that combines the virtues of both while avoiding their disadvantages. It achieves the low miss penalties of a page-caching syst ..."
Abstract
-
Cited by 41 (10 self)
- Add to MetaCart
This paper presents HAC, a novel technique for managing the client cache in a distributed, persistent object storage system. HAC is a hybrid between page and object caching that combines the virtues of both while avoiding their disadvantages. It achieves the low miss penalties of a page-caching system, but is able to perform well even when locality is poor, since it can discard pages while retaining their hot objects. It realizes the potentially lower miss rates of object-caching systems, yet avoids their problems of fragmentation and high overheads. Furthermore, HAC is adaptive: when locality is good it behaves like a page-caching system, while if locality is poor it behaves like an object-caching system. It is able to adjust the amount of cache space devoted to pages dynamically so that space in the cache can be used in the way that best matches the needs of the application. The paper also presents results of experiments that indicate that HAC outperforms other object storage systems across a wide range of cache sizes and workloads; it performs substantially better on the expected workloads, which have low to moderate locality. Thus we show that our hybrid, adaptive approach is the cache management technique of choice for distributed, persistent object systems. 1

