A multi-threaded architecture for prefetching in object bases

  • Carsten A. Gerlhof
  • Alfons Kemper
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 779)


We propose a generic architectural framework, a multi-threaded run-time system for client/server architectures, which facilitates the integration, exchange and extension of various prefetching techniques. To demonstrate the viability of this architecture two prefetching techniques are incorporated: a predictor-based technique — which consists of a separate predictor component in the run-time system — and a code-based technique — which provides an explicit prefetch statement at the programming interface. Our quantitative analysis indicates that (static) code-based techniques are a promising alternative to expensive monitoring-based predictors.


Page Fault Application Thread Prefetching Technique Prefetch Request Prefetch Thread 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [BC91]
    J.-L. Baer and T.-F. Chen. An effective on-chip preloading scheme to reduce data access penalty. In Proc. of Supercomputing, pages 176–186, 1991.Google Scholar
  2. [BS76]
    J.-L. Baier and G.R. Sager. Dynamic improvement of locality in virtual memory systems. IEEE Trans. Software Eng., 2(1):54–62, 1976.Google Scholar
  3. [CB92]
    T.-F. Chen and J.-L. Baer. Reducing memory latency via non-blocking and prefetching caches. In Proc. on Architectural Support for Programming Languages and Operating Systems (ASPLOS), pages 51–61, Oct 1992.Google Scholar
  4. [CK89]
    E. E. Chang and R. H. Katz. Exploiting inheritance and structure semantics for effective clustering and buffering in an object-oriented DBMS. In Proc. of the ACM SIGMOD Conf. on Management of Data, pages 348–357, Portland, OR, May 1989.Google Scholar
  5. [CKP91]
    D. Callahan, K. Kennedy, and A. Portfield. Software prefetching. In AS-PLOS, pages 40–52, Santa Clara, California, Apr 1991.Google Scholar
  6. [CKV93]
    K. M. Curewitz, P. Krishnan, and J. S. Vitter. Practical prefetching via data compression. In ACM SIGMOD, pages 43–53, Washington, DC, May 1993.Google Scholar
  7. [FP91]
    J. W. C. Fu and J. H. Patel. Data prefetching in multiprocessor vector cache memories. In Proc. of the Intl. Symp. on Computer Architecture, pages 54–63, May 1991.Google Scholar
  8. [Gem91]
    GemStone. Product Overview. Servio Logic Corporation, 1420 Harbor Bay Parkway, Suite 100, Alameda, CA 94501, U.S.A., Feb 1991.Google Scholar
  9. [GKKM93]
    C. Gerlhof, A. Kemper, C. Kilger, and G. Moerkotte. Partition-based clustering in object bases: From theory to practice. In Proc. of the Intl. Conf. on Foundations of Data Organization and Algorithms (FODO), volume 730 of Lecture Notes in Computer Science (LNCS), pages 301–316, Chicago, Illinois, Oct 1993, Springer-Verlag.Google Scholar
  10. [Jos 70]
    M.Joseph. An analysis of paging and program behaviour. Computer Journal, 13(1):48–54, 1970.Google Scholar
  11. [KE90]
    D. F. Kotz and C. S. Ellis. Prefetching in file systems for MIMD multiprocessors. IEEE Trans. on Parallel and Distributed Systems, 1(2):218–230, Apr 1990.Google Scholar
  12. [KGM91]
    T. Keller, G. Graefe, and D. Maier. Efficient assembly of complex objects. In ACM SIGMOD, pages 148–158, Denver, CO, May 1991.Google Scholar
  13. [KL91]
    A. C. Klaiber and H. M. Levy. An architecture for software-controlled data prefetching. In Proc. of the Intl. Symp. on Computer Architecture, pages 43–53, May 1991.Google Scholar
  14. [MLG92]
    T. C. Mowry, M. S. Lam, and A. Gupta. Design and evaluation of a compiler algorithm for prefetching. In ASPLOS, pages 62–73, Oct 1992.Google Scholar
  15. [Mue93]
    F. Mueller. A library implementation of POSIX threads under UNIX. In USENIX, San Diego, CA, Winter 1993.Google Scholar
  16. [PZ91]
    M. Palmer and S. B. Zdonik. Fido: A cache that learns to fetch. In Proc. of the Conf. on Very Large Data Bases (VLDB), pages 255–264, Barcelona, Sep 1991.Google Scholar
  17. [RL92]
    A. Rogers and K. Li. Software support for speculative loads. In ASPLOS, pages 38–50, Oct 1992.Google Scholar
  18. [Smi78]
    A. J. Smith. Sequentiality and prefetching in database systems. ACM Trans. on Database Systems, 3(3):223–247, 1978.Google Scholar
  19. [Sto81]
    M. Stonebraker. Operating system support for database management. Communications of the ACM, 24(7):412–418, Jul 1981.Google Scholar
  20. [Tri76]
    K. S. Trivedi. Prepaging and applications to array algorithms. IEEE Trans, on Comp., 25(9):915–921, Sep 1976.Google Scholar
  21. [Wil92]
    M. V. Wilkes. The long-term future of operating systems. Communications of the ACM, 35(11):23–24/112, Nov 1992.Google Scholar
  22. [WZ86]
    H. Wedeking and G. Zörntlein. Prefetching in realtime database applications. In ACM SIGMOD, pages 215–226, Washington, D.C., 1986.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Carsten A. Gerlhof
    • 1
  • Alfons Kemper
    • 1
  1. 1.Fakultät für Mathematik und InformatikUniversität Passau, Lehrstuhl für Dialogorientierte SystemePassauGermany

Personalised recommendations