Exploring caching for efficient collection operations

  • Authors:
  • Swetha Surapaneni;Venkata Krishna Suhas Nerella;Sanjay K. Madria;Thomas Weigert

  • Affiliations:
  • Department of Computer Science, Missouri University of Science and Technology, Rolla, USA;Department of Computer Science, Missouri University of Science and Technology, Rolla, USA;Department of Computer Science, Missouri University of Science and Technology, Rolla, USA;Department of Computer Science, Missouri University of Science and Technology, Rolla, USA

  • Venue:
  • ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Many useful programs operate on collection types. Extensive libraries are available in many programming languages, such as the C++ Standard Template Library, which make programming with collections convenient. Extending programming languages to provide collection queries as first class constructs in the language would not only allow programmers to write queries explicitly in their programs but it would also allow compilers to leverage the wealth of experience available from the database domain to optimize such queries. This paper describes an approach to reducing the run time of programs involving explicit collection queries by leveraging a cache to store previously computed results. We propose caching the results of join (sub)queries which allows queries that miss the cache entirely to be answered partially from the cache thereby improving the query execution time. We also describe an effective cache policy to determine which join (sub)queries to cache. The cache is maintained incrementally, when the underlying collections change, and use of the cache space is optimized by a cache replacement policy.