Transactional Consistency and Automatic Management in an Application Data Cache

Download: pdf, ps.

“Transactional Consistency and Automatic Management in an Application Data Cache” by Dan R. K. Ports, Austin T. Clements, Irene Zhang, Samuel Madden, and Barbara Liskov. In Proceedings of the 9th USENIX Symposium on Operating Systems Design and Implementation (OSDI '10), (Vancouver, BC, Canada), Oct. 2010, USENIX.


Distributed in-memory application data caches like memcached are a popular solution for scaling database-driven web sites. These systems are easy to add to existing deployments, and increase performance significantly by reducing load on both the database and application servers. Unfortunately, such caches do not integrate well with the database or the application. They cannot maintain transactional consistency across the entire system, violating the isolation properties of the underlying database. They leave the application responsible for locating data in the cache and keeping it up to date, a frequent source of application complexity and programming errors.

Addressing both of these problems, we introduce a transactional cache, TxCache, with a simple programming model. TxCache ensures that any data seen within a transaction, whether it comes from the cache or the database, reflects a slightly stale but consistent snapshot of the database. TxCache makes it easy to add caching to an application by simply designating functions as cacheable; it automatically caches their results, and invalidates the cached data as the underlying database changes. Our experiments found that adding TxCache increased the throughput of a web application by up to 5.2x, only slightly less than a non-transactional cache, showing that consistency does not have to come at the price of performance.

Download: pdf, ps.

BibTeX entry:

   author = {Dan R. K. Ports and Austin T. Clements and Irene Zhang and
	Samuel Madden and Barbara Liskov},
   title = {Transactional Consistency and Automatic Management in an
	Application Data Cache},
   booktitle = {Proceedings of the 9th {USENIX} {S}ymposium on {O}perating
	{S}ystems {D}esign and {I}mplementation ({OSDI} '10)},
   address = {Vancouver, BC, Canada},
   month = oct,
   year = {2010},
   organization = {USENIX}

Also see all authors, all publications by date, and all publications by topic.

Programming Methodology Group