Mutli-Buffer Storage for Predicate Caching

P. Bodorik, D. Jutla, and Y. Fu (Canada)


Distributed and Parallel Computing and Systems , StorageManagement, Predicate Caching, Cache Evaluation


Transactional caching is an important technique utilized in providing efficient access to DB systems. Most algorithms that manage storage for predicate in-memory caches, the subject of this paper, utilize the available memory as one pool of buffer space shared by all cached objects while placement of objects/items is either on demand or by exploiting some specific semantic knowledge garnered from the application. In contrast, some DB caching, in which a DB is used for cache storage, utilize classification of queries based on their joining predicates to store results of queries belonging to a class in one relation; in essence, each class of queries has a relation that is used to store query results. We extend this technique to memory caches that, unlike DB caches, have a limit on the storage size and thus storage management affects the cache performance. We devise efficient structures to manage predicates and also cached data. We examine algorithms for space allocation to multiple buffers of different query classes and cost models for placement and replacement of query result based on the gathered statistics of past access patterns. The storage management techniques are evaluated using a modified TPC-W benchmark.

Important Links:

Go Back