UTCache: Updatable Transactional Cache for Database-Driven Applications

Xiaodong Zhang,Jing Zhou
DOI: https://doi.org/10.1109/apsec57359.2022.00016
2022-01-01
Abstract:Most popular applications rely on the remote database server for data storage. In response to users’ requests, applications interactively read or update the data in databases through DML, like SQL. Caching database results can eliminate the network latency of remote access but also may violate transaction isolation provided by the database. To avoid anomalies caused by the cache, existing works designed transactional caches, which can manage concurrent access to cache entries and invalidate stale ones automatically. For some OLTP workloads with frequent updates, invalidation will reduce the cache hit ratio and hurt performance. To handle these workloads better, we propose UTCache, a transactional cache that supports updating stale entries. UTCache caches database results in different ways according to the characteristic of queries. After the data in the database is modified, it will automatically update the affected cache entries to serve future queries, if possible. Our evaluation shows that in typical OLTP workloads, TPC-C and SmallBank, UTCache can outperform invalidation-based cache a lot and achieve higher throughput with lower latency and network traffic.
What problem does this paper attempt to address?