Maintaining views incrementally
SIGMOD '93 Proceedings of the 1993 ACM SIGMOD international conference on Management of data
A critique of ANSI SQL isolation levels
SIGMOD '95 Proceedings of the 1995 ACM SIGMOD international conference on Management of data
The dangers of replication and a solution
SIGMOD '96 Proceedings of the 1996 ACM SIGMOD international conference on Management of data
STOC '97 Proceedings of the twenty-ninth annual ACM symposium on Theory of computing
Flexible update propagation for weakly consistent replication
Proceedings of the sixteenth ACM symposium on Operating systems principles
A scalable Web cache consistency architecture
Proceedings of the conference on Applications, technologies, architectures, and protocols for computer communication
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
A new approach to developing and implementing eager database replication protocols
ACM Transactions on Database Systems (TODS)
Chord: a scalable peer-to-peer lookup protocol for internet applications
IEEE/ACM Transactions on Networking (TON)
The Design of the POSTGRES Storage System
VLDB '87 Proceedings of the 13th International Conference on Very Large Data Bases
Pastry: Scalable, Decentralized Object Location, and Routing for Large-Scale Peer-to-Peer Systems
Middleware '01 Proceedings of the IFIP/ACM International Conference on Distributed Systems Platforms Heidelberg
Ganymed: scalable replication for transactional web applications
Proceedings of the 5th ACM/IFIP/USENIX international conference on Middleware
Database Replication Using Generalized Snapshot Isolation
SRDS '05 Proceedings of the 24th IEEE Symposium on Reliable Distributed Systems
Transactional file systems can be fast
Proceedings of the 11th workshop on ACM SIGOPS European workshop
Relaxed-currency serializability for middle-tier caching and replication
Proceedings of the 2006 ACM SIGMOD international conference on Management of data
C-JDBC: flexible database clustering middleware
ATEC '04 Proceedings of the annual conference on USENIX Annual Technical Conference
View invalidation for dynamic content caching in multitiered architectures
VLDB '02 Proceedings of the 28th international conference on Very Large Data Bases
Proceedings of the ACM/IFIP/USENIX 2003 International Conference on Middleware
WebSphere dynamic cache: improving J2EE application performance
IBM Systems Journal
TAPP'10 Proceedings of the 2nd conference on Theory and practice of provenance
Census: location-aware membership management for large-scale distributed systems
USENIX'09 Proceedings of the 2009 conference on USENIX Annual technical conference
Purity and side effect analysis for java programs
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Thialfi: a client notification service for internet-scale applications
SOSP '11 Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles
Elastic SI-Cache: consistent and scalable caching in multi-tier architectures
The VLDB Journal — The International Journal on Very Large Data Bases
SPECTRE: speculation to hide communication latency
Proceedings of the Second Asia-Pacific Workshop on Systems
A trigger-based middleware cache for ORMs
Middleware'11 Proceedings of the 12th ACM/IFIP/USENIX international conference on Middleware
Gumball: a race condition prevention technique for cache augmented SQL database management systems
DBSocial '12 Proceedings of the 2nd ACM SIGMOD Workshop on Databases and Social Networks
HyperDex: a distributed, searchable key-value store
Proceedings of the ACM SIGCOMM 2012 conference on Applications, technologies, architectures, and protocols for computer communication
Serializable snapshot isolation in PostgreSQL
Proceedings of the VLDB Endowment
HyperDex: a distributed, searchable key-value store
ACM SIGCOMM Computer Communication Review - Special october issue SIGCOMM '12
A trigger-based middleware cache for ORMs
Proceedings of the 12th International Middleware Conference
Stronger semantics for low-latency geo-replicated storage
nsdi'13 Proceedings of the 10th USENIX conference on Networked Systems Design and Implementation
nsdi'13 Proceedings of the 10th USENIX conference on Networked Systems Design and Implementation
Cache augmented database management systems
Proceedings of the ACM SIGMOD Workshop on Databases and Social Networks
A comparison of two physical data designs for interactive social networking actions
Proceedings of the 22nd ACM international conference on Conference on information & knowledge management
Anti-caching: a new approach to database management system architecture
Proceedings of the VLDB Endowment
Easy freshness with Pequod cache joins
NSDI'14 Proceedings of the 11th USENIX Conference on Networked Systems Design and Implementation
Warranties for faster strong consistency
NSDI'14 Proceedings of the 11th USENIX Conference on Networked Systems Design and Implementation
Hi-index | 0.00 |
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.2×, only slightly less than a non-transactional cache, showing that consistency does not have to come at the price of performance.