Controlled Transactional Consistency for Web Caching

In-memory read-only caches are widely used in cloud infrastructure to reduce access latency and to reduce load on backend databases. Operators view coherent caches as impractical at genuinely large scale and many clientfacing caches are updated in an asynchronous manner with best-effort pipelines. Existing incoherent cache technologies do not support transactional data access, even if the backend database supports transactions. We propose T-Cache, a cache that supports read-only transactions despite asynchronous and unreliable communication with the database. We also define cache-serializability, a variant of serializability that is suitable for incoherent caches, and prove that with unbounded resources T-Cache implements it. With limited resources, T-Cache allows the system manager to choose a trade-off between performance and consistency. Our evaluation shows that T-Cache detects many inconsistencies with only nominal overhead. We use synthetic workloads to demonstrate the efficacy of T-Cache when data accesses are clustered and its adaptive reaction to workload changes. With workloads based on the real-world topologies, T-Cache detects 43− 70% of the inconsistencies and increases the rate of consistent transactions by 33−58%.

[1]  Amin Vahdat,et al.  Webfs: a global cache coherent filesystem , 1996 .

[2]  Scott Shenker,et al.  A scalable Web cache consistency architecture , 1999, SIGCOMM '99.

[3]  Arun Iyengar,et al.  A scalable system for consistently caching dynamic Web data , 1999, IEEE INFOCOM '99. Conference on Computer Communications. Proceedings. Eighteenth Annual Joint Conference of the IEEE Computer and Communications Societies. The Future is Now (Cat. No.99CH36320).

[4]  Christopher A. Kent,et al.  Cache Coherence in Distributed Systems , 1999 .

[5]  David E. Culler,et al.  Scalable, Distributed Data Structures for Internet Service Construction , 2000, OSDI.

[6]  Tao Yang,et al.  Class-based cache management for dynamic Web content , 2001, Proceedings IEEE INFOCOM 2001. Conference on Computer Communications. Twentieth Annual Joint Conference of the IEEE Computer and Communications Society (Cat. No.01CH37213).

[7]  J. K. Wong Middle-Tier Database Caching for e-Business , 2002 .

[8]  Avraham Leff,et al.  Improving application throughput with enterprise JavaBeans Caching , 2003, 23rd International Conference on Distributed Computing Systems, 2003. Proceedings..

[9]  Priyanka Jain,et al.  WebSphere Dynamic Cache: Improving J2EE application performance , 2004, IBM Syst. J..

[10]  Philip A. Bernstein,et al.  Relaxed-currency serializability for middle-tier caching and replication , 2006, SIGMOD Conference.

[11]  M. Hossein Sheikh Attar,et al.  Alternative Architectures and Protocols for Providing Strong Consistency in Dynamic Web Applications , 2006 .

[12]  Christos Faloutsos,et al.  Sampling from large graphs , 2006, KDD '06.

[13]  Ricardo Jiménez-Peris,et al.  Consistent and Scalable Cache Replication for Multi-tier J2EE Applications , 2007, Middleware.

[14]  Krishna P. Gummadi,et al.  Measurement and analysis of online social networks , 2007, IMC '07.

[15]  Jure Leskovec,et al.  The dynamics of viral marketing , 2005, EC '06.

[16]  Samuel Madden,et al.  Transactional Consistency and Automatic Management in an Application Data Cache , 2010, OSDI.

[17]  Ricardo Jiménez-Peris,et al.  Elastic SI-Cache: consistent and scalable caching in multi-tier architectures , 2011, The VLDB Journal.

[18]  Michael J. Freedman,et al.  Don't settle for eventual: scalable causal consistency for wide-area storage with COPS , 2011, SOSP.

[19]  Marcos K. Aguilera,et al.  Transactional storage for geo-replicated systems , 2011, SOSP.

[20]  Christopher Frost,et al.  Spanner: Google's Globally-Distributed Database , 2012, OSDI.

[21]  Cheng Li,et al.  Making geo-replicated systems fast as possible, consistent when necessary , 2012, OSDI 2012.

[22]  Dahlia Malkhi,et al.  CORFU: A Shared Log Design for Flash Clusters , 2012, NSDI.

[23]  Tao Zou,et al.  Tango: distributed data structures over a shared log , 2013, SOSP.

[24]  Johannes Gehrke,et al.  Fast Iterative Graph Computation with Block Updates , 2013, Proc. VLDB Endow..

[25]  Tony Tung,et al.  Scaling Memcache at Facebook , 2013, NSDI.

[26]  Hui Ding,et al.  TAO: Facebook's Distributed Data Store for the Social Graph , 2013, USENIX Annual Technical Conference.

[27]  Marcos K. Aguilera,et al.  Transaction chains: achieving serializability with low latency in geo-distributed storage systems , 2013, SOSP.

[28]  Idit Keidar,et al.  Ordering Transactions with Prediction in Distributed Object Stores , 2013 .

[29]  Chao Xie,et al.  Salt: Combining ACID and BASE in a Distributed Database , 2014, OSDI.

[30]  Emin Gün Sirer,et al.  Warp: Lightweight Multi-Key Transactions for Key-Value Stores , 2015, ArXiv.