Providing caching abstractions for web applications

Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2010.

Bibliographic Details
Main Author: Gupta, Priya, S.M. Massachusetts Institute of Technology
Other Authors: Nickolai Zeldovich and Samuel R. Madden.
Format: Thesis
Language:eng
Published: Massachusetts Institute of Technology 2011
Subjects:
Online Access:http://hdl.handle.net/1721.1/62453
_version_ 1811073700250779648
author Gupta, Priya, S.M. Massachusetts Institute of Technology
author2 Nickolai Zeldovich and Samuel R. Madden.
author_facet Nickolai Zeldovich and Samuel R. Madden.
Gupta, Priya, S.M. Massachusetts Institute of Technology
author_sort Gupta, Priya, S.M. Massachusetts Institute of Technology
collection MIT
description Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2010.
first_indexed 2024-09-23T09:37:10Z
format Thesis
id mit-1721.1/62453
institution Massachusetts Institute of Technology
language eng
last_indexed 2024-09-23T09:37:10Z
publishDate 2011
publisher Massachusetts Institute of Technology
record_format dspace
spelling mit-1721.1/624532019-04-12T12:54:07Z Providing caching abstractions for web applications Gupta, Priya, S.M. Massachusetts Institute of Technology Nickolai Zeldovich and Samuel R. Madden. Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. Electrical Engineering and Computer Science. Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2010. Cataloged from PDF version of thesis. Includes bibliographical references (p. 99-101). Web-based applications are used by millions of users daily, and as a result a key challenge facing web application designers is scaling their applications to handle this load. A crucial component of this challenge is scaling the data storage layer, especially for the newer class of social networking applications that have huge amounts of shared data. Caching is an important scaling technique and is a critical part of the storage layer for such 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 system which aims to make it easy for web application developers to build caching mechanisms in their applications. It achieves this by proposing high-level caching abstractions for frequently observed query patterns in web applications. These abstractions take the form of declarative query objects, and once the developer defines them, she does not have to worry about managing the cache (i.e., insertion and deletion) or maintaining consistency (e.g., invalidation or updates) when writing application code. We designed and implemented CacheGenie in the popular Django web application framework, with PostgreSQL as the database backend and memcached as the caching layer. We use triggers inside the database to automatically invalidate or keep the cache synchronized, as desired by the developer. We have not made any modifications to PostgreSQL or memcached. To evaluate our prototype, we ported several Pinax web applications to use our caching abstractions and performed several experiments. Our results show that it takes little effort for application developers to use CacheGenie, and that caching provides a throughput improvement by a factor of 2-2.5 for read-mostly workloads. by Priya Gupta. S.M. 2011-04-25T16:01:19Z 2011-04-25T16:01:19Z 2010 2010 Thesis http://hdl.handle.net/1721.1/62453 711139330 eng M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission. http://dspace.mit.edu/handle/1721.1/7582 101 p. application/pdf Massachusetts Institute of Technology
spellingShingle Electrical Engineering and Computer Science.
Gupta, Priya, S.M. Massachusetts Institute of Technology
Providing caching abstractions for web applications
title Providing caching abstractions for web applications
title_full Providing caching abstractions for web applications
title_fullStr Providing caching abstractions for web applications
title_full_unstemmed Providing caching abstractions for web applications
title_short Providing caching abstractions for web applications
title_sort providing caching abstractions for web applications
topic Electrical Engineering and Computer Science.
url http://hdl.handle.net/1721.1/62453
work_keys_str_mv AT guptapriyasmmassachusettsinstituteoftechnology providingcachingabstractionsforwebapplications