<?xml version="1.0" encoding="utf-8"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hal="http://hal.archives-ouvertes.fr/" xmlns:gml="http://www.opengis.net/gml/3.3/" xmlns:gmlce="http://www.opengis.net/gml/3.3/ce" version="1.1" xsi:schemaLocation="http://www.tei-c.org/ns/1.0 http://api.archives-ouvertes.fr/documents/aofr-sword.xsd">
  <teiHeader>
    <fileDesc>
      <titleStmt>
        <title>HAL TEI export of hal-01597769</title>
      </titleStmt>
      <publicationStmt>
        <distributor>CCSD</distributor>
        <availability status="restricted">
          <licence target="https://creativecommons.org/publicdomain/zero/1.0/">CC0 1.0 - Universal</licence>
        </availability>
        <date when="2026-05-21T10:21:56+02:00"/>
      </publicationStmt>
      <sourceDesc>
        <p part="N">HAL API Platform</p>
      </sourceDesc>
    </fileDesc>
  </teiHeader>
  <text>
    <body>
      <listBibl>
        <biblFull>
          <titleStmt>
            <title xml:lang="en">A Trigger-Based Middleware Cache for ORMs</title>
            <author role="aut">
              <persName>
                <forename type="first">Priya</forename>
                <surname>Gupta</surname>
              </persName>
              <idno type="halauthorid">1231468-0</idno>
              <affiliation ref="#struct-406632"/>
            </author>
            <author role="aut">
              <persName>
                <forename type="first">Nickolai</forename>
                <surname>Zeldovich</surname>
              </persName>
              <idno type="halauthorid">1231469-0</idno>
              <affiliation ref="#struct-406632"/>
            </author>
            <author role="aut">
              <persName>
                <forename type="first">Samuel</forename>
                <surname>Madden</surname>
              </persName>
              <idno type="halauthorid">1231470-0</idno>
              <affiliation ref="#struct-406632"/>
            </author>
            <editor role="depositor">
              <persName>
                <forename>Hal</forename>
                <surname>Ifip</surname>
              </persName>
              <email type="md5">2073ac78024b6e13f2714db96e9b1e63</email>
              <email type="domain">inria.fr</email>
            </editor>
          </titleStmt>
          <editionStmt>
            <edition n="v1" type="current">
              <date type="whenSubmitted">2017-09-28 17:11:48</date>
              <date type="whenModified">2017-09-28 17:16:50</date>
              <date type="whenReleased">2017-09-28 17:16:50</date>
              <date type="whenProduced">2011-12-12</date>
              <date type="whenEndEmbargoed">2014-01-01</date>
              <ref type="file" target="https://inria.hal.science/hal-01597769v1/document">
                <date notBefore="2014-01-01"/>
              </ref>
              <ref type="file" subtype="author" n="1" target="https://inria.hal.science/hal-01597769v1/file/978-3-642-25821-3_17_Chapter.pdf" id="file-1597769-1648043">
                <date notBefore="2014-01-01"/>
              </ref>
              <ref type="externalLink" target="https://link.springer.com/content/pdf/10.1007%2F978-3-642-25821-3_17.pdf"/>
            </edition>
            <respStmt>
              <resp>contributor</resp>
              <name key="200187">
                <persName>
                  <forename>Hal</forename>
                  <surname>Ifip</surname>
                </persName>
                <email type="md5">2073ac78024b6e13f2714db96e9b1e63</email>
                <email type="domain">inria.fr</email>
              </name>
            </respStmt>
          </editionStmt>
          <publicationStmt>
            <distributor>CCSD</distributor>
            <idno type="halId">hal-01597769</idno>
            <idno type="halUri">https://inria.hal.science/hal-01597769</idno>
            <idno type="halBibtex">gupta:hal-01597769</idno>
            <idno type="halRefHtml">&lt;i&gt;12th International Middleware Conference (MIDDLEWARE)&lt;/i&gt;, Dec 2011, Lisbon, Portugal. pp.329-349, &lt;a target="_blank" href="https://dx.doi.org/10.1007/978-3-642-25821-3_17"&gt;&amp;#x27E8;10.1007/978-3-642-25821-3_17&amp;#x27E9;&lt;/a&gt;</idno>
            <idno type="halRef">12th International Middleware Conference (MIDDLEWARE), Dec 2011, Lisbon, Portugal. pp.329-349, &amp;#x27E8;10.1007/978-3-642-25821-3_17&amp;#x27E9;</idno>
            <availability status="restricted">
              <licence target="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0 - Attribution<ref corresp="#file-1597769-1648043"/></licence>
            </availability>
          </publicationStmt>
          <seriesStmt>
            <idno type="stamp" n="IFIP-LNCS" corresp="IFIP">IFIP - Lecture Notes in Computer Science</idno>
            <idno type="stamp" n="IFIP">IFIP - International Federation for Information Processing</idno>
            <idno type="stamp" n="IFIP-TC" corresp="IFIP">IFIP Technical Committees </idno>
            <idno type="stamp" n="IFIP-WG" corresp="IFIP">Working Groups</idno>
            <idno type="stamp" n="IFIP-TC6" corresp="IFIP-TC">TC 6: Communication Systems</idno>
            <idno type="stamp" n="IFIP-WG6-1" corresp="IFIP-WG">Architectures and Protocols for Distributed Systems</idno>
            <idno type="stamp" n="IFIP-MIDDLEWARE">International Middleware Conference</idno>
            <idno type="stamp" n="IFIP-LNCS-7049" corresp="IFIP-LNCS">Middleware 2011</idno>
          </seriesStmt>
          <notesStmt>
            <note type="commentary">Part 6: Replication and Caching</note>
            <note type="audience" n="2">International</note>
            <note type="invited" n="0">No</note>
            <note type="popular" n="0">No</note>
            <note type="peer" n="1">Yes</note>
            <note type="proceedings" n="1">Yes</note>
          </notesStmt>
          <sourceDesc>
            <biblStruct>
              <analytic>
                <title xml:lang="en">A Trigger-Based Middleware Cache for ORMs</title>
                <author role="aut">
                  <persName>
                    <forename type="first">Priya</forename>
                    <surname>Gupta</surname>
                  </persName>
                  <idno type="halauthorid">1231468-0</idno>
                  <affiliation ref="#struct-406632"/>
                </author>
                <author role="aut">
                  <persName>
                    <forename type="first">Nickolai</forename>
                    <surname>Zeldovich</surname>
                  </persName>
                  <idno type="halauthorid">1231469-0</idno>
                  <affiliation ref="#struct-406632"/>
                </author>
                <author role="aut">
                  <persName>
                    <forename type="first">Samuel</forename>
                    <surname>Madden</surname>
                  </persName>
                  <idno type="halauthorid">1231470-0</idno>
                  <affiliation ref="#struct-406632"/>
                </author>
              </analytic>
              <monogr>
                <title level="m">Lecture Notes in Computer Science</title>
                <meeting>
                  <title>12th International Middleware Conference (MIDDLEWARE)</title>
                  <date type="start">2011-12-12</date>
                  <date type="end">2011-12-16</date>
                  <settlement>Lisbon</settlement>
                  <country key="PT">Portugal</country>
                </meeting>
                <editor>Fabio Kon</editor>
                <editor>Anne-Marie Kermarrec</editor>
                <imprint>
                  <publisher>Springer</publisher>
                  <biblScope unit="serie">Middleware 2011</biblScope>
                  <biblScope unit="volume">LNCS-7049</biblScope>
                  <biblScope unit="pp">329-349</biblScope>
                  <date type="datePub">2011</date>
                </imprint>
              </monogr>
              <idno type="doi">10.1007/978-3-642-25821-3_17</idno>
            </biblStruct>
          </sourceDesc>
          <profileDesc>
            <langUsage>
              <language ident="en">English</language>
            </langUsage>
            <textClass>
              <classCode scheme="halDomain" n="info">Computer Science [cs]</classCode>
              <classCode scheme="halDomain" n="info.info-ni">Computer Science [cs]/Networking and Internet Architecture [cs.NI]</classCode>
              <classCode scheme="halTypology" n="COMM">Conference papers</classCode>
              <classCode scheme="halOldTypology" n="COMM">Conference papers</classCode>
              <classCode scheme="halTreeTypology" n="COMM">Conference papers</classCode>
            </textClass>
            <abstract xml:lang="en">
              <p>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.</p>
            </abstract>
            <particDesc>
              <org type="consortium">TC 6</org>
              <org type="consortium">WG 6.1</org>
            </particDesc>
          </profileDesc>
        </biblFull>
      </listBibl>
    </body>
    <back>
      <listOrg type="structures">
        <org type="laboratory" xml:id="struct-406632" status="VALID">
          <orgName>Computer Science and Artificial Intelligence Laboratory [Cambridge]</orgName>
          <orgName type="acronym">CSAIL</orgName>
          <desc>
            <address>
              <addrLine>The Stata Center, Building 32 32 Vassar Street Cambridge, MA 02139</addrLine>
              <country key="US"/>
            </address>
            <ref type="url">https://www.csail.mit.edu/</ref>
          </desc>
          <listRelation>
            <relation active="#struct-301950" type="direct"/>
          </listRelation>
        </org>
        <org type="institution" xml:id="struct-301950" status="VALID">
          <idno type="ROR">https://ror.org/042nb2s44</idno>
          <orgName>Massachusetts Institute of Technology</orgName>
          <orgName type="acronym">MIT</orgName>
          <desc>
            <address>
              <addrLine>77 Massachusetts Ave, Cambridge, MA 02139</addrLine>
              <country key="US"/>
            </address>
            <ref type="url">http://web.mit.edu</ref>
          </desc>
        </org>
      </listOrg>
    </back>
  </text>
</TEI>