Chapter

ECOOP 2006 – Object-Oriented Programming

Volume 4067 of the series Lecture Notes in Computer Science pp 50-73

Automatic Prefetching by Traversal Profiling in Object Persistence Architectures

  • Ali IbrahimAffiliated withDepartment of Computer Sciences, University of Texas at Austin
  • , William R. CookAffiliated withDepartment of Computer Sciences, University of Texas at Austin

* Final gross prices may vary according to local VAT.

Get Access

Abstract

Object persistence architectures support transparent access to persistent objects. For efficiency, many of these architectures support queries that can prefetch associated objects as part of the query result. While specifying prefetch manually in a query can significantly improve performance, correct prefetch specifications are difficult to determine and maintain, especially in modular programs. Incorrect prefetching is difficult to detect, because prefetch is only an optimization hint. This paper presents AutoFetch, a technique for automatically generating prefetch specifications using traversal profiling in object persistence architectures. AutoFetch generates prefetch specifications based on previous executions of similar queries. In contrast to previous work, AutoFetch can fetch arbitrary traversal patterns and can execute the optimal number of queries. AutoFetch has been implemented as an extension of Hibernate. We demonstrate that AutoFetch improves performance of traversals in the OO7 benchmark and can automatically predict prefetches that are equivalent to hand-coded queries, while supporting more modular program designs.