Skip to Main content Skip to Navigation
Conference papers

A Trigger-Based Middleware Cache for ORMs

Abstract : Caching is an important technique in scaling storage for high-traffic web applications. Usually, building caching mechanisms involves significant effort from the application developer to maintain and invalidate data in the cache. In this work we present CacheGenie, a caching middleware which makes it easy for web application developers to use caching mechanisms in their applications. CacheGenie provides high-level caching abstractions for common query patterns in web applications based on Object-RelationalMapping (ORM) frameworks. Using these abstractions, the developer does not have to worry about managing the cache (e.g., insertion and deletion) or maintaining consistency (e.g., invalidation or updates) when writing application code.We design and implement CacheGenie in the popular Django web application framework, with PostgreSQL as the database backend and memcached as the caching layer. To automatically invalidate or update cached data, we use triggers inside the database. CacheGenie requires no modifications to PostgreSQL or memcached. To evaluate our prototype, we port several Pinax web applications to use our caching abstractions. Our results show that it takes little effort for application developers to use CacheGenie, and that CacheGenie improves throughput by 2-2.5× for read-mostly workloads in Pinax.
Complete list of metadata

Cited literature [21 references]  Display  Hide  Download
Contributor : Hal Ifip Connect in order to contact the contributor
Submitted on : Thursday, September 28, 2017 - 5:11:48 PM
Last modification on : Thursday, September 28, 2017 - 5:16:50 PM
Long-term archiving on: : Friday, December 29, 2017 - 3:54:12 PM


Files produced by the author(s)


Distributed under a Creative Commons Attribution 4.0 International License



Priya Gupta, Nickolai Zeldovich, Samuel Madden. A Trigger-Based Middleware Cache for ORMs. 12th International Middleware Conference (MIDDLEWARE), Dec 2011, Lisbon, Portugal. pp.329-349, ⟨10.1007/978-3-642-25821-3_17⟩. ⟨hal-01597769⟩



Record views


Files downloads