Client Cache management in a Distributed Object Database

  • Authors:
  • M. S. Day

  • Affiliations:
  • -

  • Venue:
  • Client Cache management in a Distributed Object Database
  • Year:
  • 1995

Quantified Score

Hi-index 0.00

Visualization

Abstract

A distributed object database stores persistently at servers. Applications run on client machines, fetching objects into a client-side cache of objects. If fetching and cache management are done in terms of objects, rather than fixed-size units such as pages, three problems must be solved: 1. which objects to prefetch 2. how to translate, or swizzle, inter-object references when they are fetched from server to client, and, 3. which objects to displace from the cache. This thesis reports the results of experiments to test various solutions to the problems. The experiments use the runtime system of the Thor distributed object database and benchmarks adapted from the Wisconsin 007 benchmark suite. The thesis establishes the following points: 1. For plausible workloads involving some amount of object fetching, the prefetching policy is likely to have more impact on performance than swizzling policy of cache management policy. 2. A simple breadth-first prefetcher can have performance that is at worst roughly comparable to an approximation of a paged system, and is sometimes much better, completing some computations 10 times faster. 3. The client cache is managed by a combination of two simple schemes, one based on garbage collection and on based on shrinking some objects to surrogates, where a surrogate is a small data structure containing the objects name at the server. Garbage collection and shrinking have complimentary strengths. Experiments show that cache management using both techniques performs much better than cache management using only one technique. A system with both garbage collection and shrinking can complete a benchmark traversal using roughly an order of magnitude less cache storage than a system using only garbage collection. 4. For minimizing elapsed time on the benchmarks used, managing the client cache with a true LRU policy achieves close to the performance of an unattainably good minimal-fetching policy. The other policies tested all do worse than LRU, and there is little meaningful difference among them on the benchmarks used. 5. Swizzling at the granularity of individual references (so-called edge marking) has performance that is roughly comparable to the performance of swizzling at the granularity of objects (so-called node marking). Accordingly, a choice between these swizzling mechanisms should be made on the basis of factors other than performance, such as implementation complexity.