Dynamic SEOF: An Adaptable Object Prefetch Policy for Object-oriented Database Systems

When accessing objects in an object-oriented database, performance can be greatly improved by prefetching objects efficiently. In this paper we present a new object prefetch policy, dynamic selective eager object fetch (SEOF), which prefetches objects only from selected candidate pages without using any high-level object semantics. Our policy considers both correlations and frequencies of fetching objects when selecting prefetch candidates. Unlike existing prefetch policies, dynamic SEOF utilizes the memory and the swap space of clients efficiently without resource exhaustion. Furthermore, the proposed policy has good adaptability to both the effectiveness of clustering and database size. It also adjusts the degree of prefetching dynamically according to the working environment. We show the performance of the proposed policy through experiments over various multi-client system configurations.

[1]  David J. DeWitt,et al.  The oo7 Benchmark , 1993, SIGMOD Conference.

[2]  Randy H. Katz,et al.  Exploiting inheritance and structure semantics for effective clustering and buffering in an object-oriented DBMS , 1989, SIGMOD '89.

[3]  Won Kim,et al.  Architecture of the ORION Next-Generation Database System , 1990, IEEE Trans. Knowl. Data Eng..

[4]  David J. DeWitt,et al.  A Performance Study of Alternative Object Faulting and Pointer Swizzling Strategies , 1992, VLDB.

[5]  Antony L. Hosking,et al.  Object fault handling for persistent programming languages: a performance evaluation , 1993, OOPSLA '93.

[6]  Gerhard Weikum,et al.  The LRU-K page replacement algorithm for database disk buffering , 1993, SIGMOD Conference.

[7]  Ali R. Hurson,et al.  On the performance issues of object-based buffering , 1991, [1991] Proceedings of the First International Conference on Parallel and Distributed Information Systems.

[8]  J. Eliot B. Moss,et al.  Working with Persistent Objects: To Swizzle or Not to Swizzle , 1992, IEEE Trans. Software Eng..

[9]  Hyoung-Joo Kim,et al.  SEOF: an adaptable object prefetch policy for object-oriented database systems , 1997, Proceedings 13th International Conference on Data Engineering.

[10]  Alfons Kemper,et al.  Dual-Buffering Strategies in Object Bases , 1994, VLDB.

[11]  Maurice J. Bach The Design of the UNIX Operating System , 1986 .

[12]  François Bancilhon,et al.  Building an Object-Oriented Database System, The Story of O2 , 1992 .

[13]  Stanley B. Zdonik,et al.  A shared, segmented memory system for an object-oriented database , 1987, TOIS.

[14]  P. R. Wilson,et al.  Pointer swizzling at page fault time: efficiently and compatibly supporting huge address spaces on standard hardware , 1992, [1992] Proceedings of the Second International Workshop on Object Orientation in Operating Systems.

[15]  J. T. Robinson,et al.  Data cache management using frequency-based replacement , 1990, SIGMETRICS '90.

[16]  Alfons Kemper,et al.  Adaptable pointer swizzling strategies in object bases: design, realization, and quantitative analysis , 2005, The VLDB Journal.

[17]  Dennis Shasha,et al.  2Q: A Low Overhead High Performance Buffer Management Replacement Algorithm , 1994, VLDB.

[18]  Stanley B. Zdonik,et al.  Fido: A Cache That Learns to Fetch , 1991, VLDB.

[19]  R. G. G. Cattell,et al.  Object operations benchmark , 1992, TODS.

[20]  David J. DeWitt,et al.  A Study of Three Alternative Workstation-Server Architectures for Object Oriented Database Systems , 1990, VLDB.