Tools

by
Nils Knafla
- In Proc. of the Eighth Int. Workshop on Persistent Object Systems: Design, Implementation and Use (POS-8, 1998

"... We present a new approach to predicting page accesses to facilitate prefetching persistent objects in a client/server computing environment. The relationships between persistent objects are modelled by a discrete-time Markov Chain, which allowed us to use a method called hitting times to compute th ..."

We present a new approach to predicting page accesses to facilitate prefetching persistent objects in a client/server computing environment. The relationships between persistent objects are modelled by a discrete-time Markov Chain, which allowed us to use a method called hitting times to compute the page access probability and the mean time to access a page. If the probability of a page is higher than a threshold defined by cost/benefit parameters then the page is a candidate for prefetching. To determine the prefetching threshold we consider various cost parameters to compare the benefit of a correct prefetch with the cost of an incorrect prefetch. In addition, we compute the best possible time to start the prefetch operation. We incorporated this prefetching algorithm into the EXODUS storage manager, and used the timing results in a simulation. Keywords: prefetching, persistent object stores, object-oriented databases, discrete-time Markov Chains, hitting times and hitting probabil...

...d (S) IPC with Disk process (S) Send page from Server (S) to (C) Network Transfer Receive page at Client (C) Figure 1: Expensive components of a page fetch to prefetch this sequence of pages. In Thor =-=[5]-=- each fetch request from the client causes the server to select a prefetch group containing the object requested and related objects. In some research work an application's future accesses are predict...

"... this paper, we examine the way in which prefetching can exploit parallelism. Prefetching has been studied before in many areas of computing such as operating systems, microprocessor design, compiler construction, the world wide web and databases. Although prefetching has been studied for a long time ..."

this paper, we examine the way in which prefetching can exploit parallelism. Prefetching has been studied before in many areas of computing such as operating systems, microprocessor design, compiler construction, the world wide web and databases. Although prefetching has been studied for a long time, the problem prefetching is facing has changed over the years as a result of technology advances. Fig. 1 shows the performance/price development of semiconductor memories and magnetic disks. There is a two-order of magnitude gap in access time between memory and disks. Memory access is faster and the rate of improvement is also higher. The prices of memory are falling which makes database N. Knafla / An Adaptable Multithreaded Prefetching Technique 3 caches cheaper and buffer replacement less of a problem. Prices of disks are also falling dramatically which is good for cheap secondary storage, allowing increased use of RAIDs. CPU performance improves at an even higher rate than memory (fig. 2). CPU is doubling its performance every 18 months whereas disk retrieval time only improves about 5% per year. Memory access time improves at about 10 to 12% per year. Client workstations will become powerful multi-processors machines with high speed CPUs, most of which will tend to be idle most of the time. 1 10 100 1000 1980 1985 1990 1995

"... I present the problem of client object cache lockup in a distributed object-oriented database system where storage is recovered by garbage collection. If garbage collection is augmented with the ability to discard reachable unmodified versions of persistent objects, cache lockup is greatly reduced. ..."

I present the problem of client object cache lockup in a distributed object-oriented database system where storage is recovered by garbage collection. If garbage collection is augmented with the ability to discard reachable unmodified versions of persistent objects, cache lockup is greatly reduced. I outline some remaining questions about this technique for managing an object cache. 1 Introduction In a distributed object-oriented database system, server machines store persistent objects shared by applications running on client machines. When an application invokes an operation on a persistent object, that operation must run on either the server or client. I consider the case where objects are moved or copied to the client for at least the duration of the client transaction. A number of existing object-oriented databases work partially or entirely in this mode of executing operations on the client machine: examples are O2 [1], GemStone [2, 9], and Orion [7]. 2 Complicating factors The...

"... In this report we compare the performance of a prefetching page server system with a prefetching object server system. We simulate the object access pattern by assigning transition probabilities to the object relationships. According to the transition probabilities we compute the access probability ..."

In this report we compare the performance of a prefetching page server system with a prefetching object server system. We simulate the object access pattern by assigning transition probabilities to the object relationships. According to the transition probabilities we compute the access probability of pages and objects. We designed several prefetching techniques for a prefetching page server and a prefetching object server. We compared the performance of the prefetching techniques in a simulation.

"... 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 heterog ..."

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 strategy. The paper presents performance results for Thor, on several OO7 benchmark traversals. The results show that adaptive prefetching is very effective, improving both the elapsed time of traversals and the amount of space used in the client cache. The results also show that the cost of safe sharing can be negligible; thus it is possible to have both safety and high performance. 1

...uest for a particular object, the OR sends the entire group that contains the requested object. (Earlier we used a policy that determined the prefetch group based on the structure of the object graph =-=[Day95]-=-. This policy was discarded because it often generated very small prefetch groups near the fringes of the object graph. Furthermore, the traversal of the object graph added a non-trivial run-time cost...

"... In many client/server object database applications, performance is limited by the delay in transferring pages from the server to the client. We present a prefetching technique that can avoid this delay, especially where there are several database servers. Part of the novelty of this approach lies in ..."

In many client/server object database applications, performance is limited by the delay in transferring pages from the server to the client. We present a prefetching technique that can avoid this delay, especially where there are several database servers. Part of the novelty of this approach lies in the way that multithreading on the client workstation is exploited, in particular for activities such as prefetching and flushing dirty pages to the server. Using our own complex object benchmark we analyze the performance of the prefetching technique with multiple clients, multiple servers and different buffer pool sizes. 1

...at were accessed during the execution of an operation. Karpovich and Grimshaw [12] developed an extensible file system, ELFS, in which they used user hints to predict the file access pattern. In Thor =-=[7]-=- each fetch request from the client causes the server to select a prefetch group containing the object requested and possibly some other objects. A fetch request is processed to completion, determinin...

"... In many client/server object database applications, performance is limited by the delay in transferring pages from the server to the client. We present a prefetching technique that can avoid this delay, especially where there are several database servers. Part of the novelty of this approach lies in ..."

In many client/server object database applications, performance is limited by the delay in transferring pages from the server to the client. We present a prefetching technique that can avoid this delay, especially where there are several database servers. Part of the novelty of this approach lies in the way that multithreading on the client workstation is exploited, in particular for activities such as prefetching and flushing dirty pages to the server. Using our own complex object benchmark we analyze the performance of the prefetching technique with multiple clients, multiple servers and different buffer pool sizes. 1 Introduction Much of the research and development effort in highperformance database systems has focused on exploiting parallel computing on the database server platform. However, the falling prices of shared-memory multiprocessors makes such machines feasible as client hosts. This raises the question of how a multiprocessor client machine can be exploited to improve d...

...at were accessed during the execution of an operation. Karpovich and Grimshaw [12] developed an extensible file system, ELFS, in which they used user hints to predict the file access pattern. In Thor =-=[7]-=- each fetch request from the client causes the server to select a prefetch group containing the object requested and possibly some other objects. A fetch request is processed to completion, determinin...

Object-oriented databases store many small objects on disks. Disks perform poorly when reading and writing individual small objects. This thesis presents a new storage management architecture that substantially improves disk performance of a distributed object-oriented database system. The storage architecture is built around a large modified object buffer (MOB) that is stored in primary memory.

...d into the cache, or for concurrency control reasons the server may ask the client to discard a particular object from its cache. Eviction of objects to make space in the client cache is discussed in =-=[13]. -=-Concurrency control issues for Thor are described in [1, 2, 27]. 2.5 Client–Server Protocol The clients send fetch requests and commit requests to the server as described in the previous section. Th...

"... This thesis describes the detailed design and implementation of the two-phase commit protocol for Thor, a new object-oriented database management system. The protocol relies on an optimistic concurrency control scheme and loosely synchronized clocks for transaction validation. It incorporates a numb ..."

This thesis describes the detailed design and implementation of the two-phase commit protocol for Thor, a new object-oriented database management system. The protocol relies on an optimistic concurrency control scheme and loosely synchronized clocks for transaction validation. It incorporates a number of performance optimizations, including presumed abort, short-circuited prepare, the coordinator log protocol, and further optimization of read-only transactions. The thesis also discusses some features of the protocol unique to Thor, such as client cache invalidation and the assignment

...formance, xrefs are swizzled into virtual memory pointers that point directly to other objects in the front end's cache. Various swizzling strategies are possible; their implications are discussed in =-=[5]-=-. When the front end attempts to follow a reference to an object that is not present in the cache, it sends a fetch request to the server where the object resides. The server responds by sending the o...