\svnInfo $Id$  

Application data caches are an efficient way to scale database-driven
web applications, but they do not integrate well with databases or web
applications. They break the consistency guarantees of the underlying
database, making it impossible for the application to see a consistent
view of the entire system. They provide a minimal interface that
requires the application to provide significant logic for keeping
cached values up to date, and often requires application developers to
understand the entire system in order to correctly manage the cache.

We provide an alternative with \txcache, an application-level cache
that ensures all data seen by an application during a transaction is
consistent, regardless of whether it comes from the cache or
database. \txcache guarantees consistency by modifying the database
server to return validity intervals, tagging data in the cache with
these intervals, and then only retrieving values from the cache that
were valid at a single point in time. By using validity intervals
instead of single timestamps, \txcache can make the best use of cached
data by lazily selecting the timestamp for each transaction.

In addition, \txcache provides an easier programming model for
application developers by allowing them to simply designate cacheable
functions, and then have the results of those functions automatically
cached. The \txcache library handles all of the complexity of managing
the cache and maintaining consistency across the system; it selects
keys, finds data in the cache consistent with the current transaction,
and automatically detects and automatically invalidates potentially
changed objects when the database is updated.

Our experiments with the \rubis benchmark show that \txcache is
effective at improving scalability by reducing load on the database
server, even when the application tolerates only a small interval of
staleness. 
%%% Local Variables: 
%%% mode: latex
%%% TeX-PDF-mode: t
%%% TeX-master: "paper.tex"
%%% End: 

% LocalWords:  timestamp invalidations
