Bridging the Gap Between Memory and Storage

  • Anirudh Badam | Princeton University

The widening gap between memory and storage is limiting the performance of many applications. The ever increasing amount of data and the need to access more of it quickly has further magnified this gap. Limited DRAM capacity of servers makes it difficult to obtain good in-memory hit-rates that are vital for avoiding high-latency disk accesses. I will present two new complementary methods (HashCache and SSDAlloc) to bridge this gap for network appliances (e.g., web-proxy caches, WAN accelerators, data deduplicators and object caches) that affect the performance of many applications. First, I will present HashCache, a novel method to efficiently represent cache-indexes necessary for such applications. It avoids the usage of pointers in building an effective cache-index to conserve memory. By reducing the size of the cache-index by up to 20 times, it frees memory for more important application data. While HashCache makes more effective use of limited DRAM in a system, SSDAlloc introduces a tier between DRAM and disk to further bridge the latency and capacity gap.

SSDAlloc removes the impediments to the integration of new high-capacity memory technologies like NAND-Flash into the memory hierarchy. SSDAlloc is novel memory manager that helps applications tier data transparently and efficiently between DRAM and NAND-Flash. With only a few modifications to an existing application, restricted to the memory allocation portions of the code, one can reap the benefits of low-latency and high-capacity of NAND-Flash memory. Additionally, with SSDAlloc, applications can obtain 90% of the raw performance of NAND-Flash while existing transparent tiering mechanisms deliver only 6-30% of that. Furthermore, by cleverly discerning application behavior, SSDAlloc writes up to 32 times less data to NAND-Flash when compared to similar existing mechanisms. This greatly increases then reliability of NAND-Flash that has a limited lifetime unlike DRAM.

Speaker Details

Anirudh Badam is a Ph.D candidate in the Department of Computer Science, Princeton University, advised by Professor Vivek S. Pai. His research interests include server resource consolidation and integration of non-volatile memory into operating systems. One of his research projects, HashCache, that reduces the high memory requirements of cache indexes useful for various networked systems was selected as one of the Top 10 Emerging Technologies of 2009 by the MIT’s Technology Review Magazine. Prior to his Ph.D studies, Anirudh obtained an M.A from Princeton University and a B.Tech from Indian Institute of Technology, Madras in Computer Science. More information is available at http://www.cs.princeton.edu/~abadam.

    • Portrait of Anirudh Badam

      Anirudh Badam

      Principal Research Scientist

    • Portrait of Jeff Running

      Jeff Running