RAMCloud is a a low-latency distributed storage system to enable the next generation of data center applications. RAMCloud keeps all data in DRAM at all times to provide low latency reads and writes across a datacenter. It ensures durability by replicating data on nonvolatile storage and quickly recovering from crashes.
I believe that it is possible to achieve usability similar to that provided by traditional databases as well as the performance and scalability of a key-value store. Most of my work in RAMCloud has been to introduce higher level data model primitives to RAMCloud - in particular, secondary indexes and multi-object transactions - while providing scalability and low latency.
Previously, I designed and implemented a fault-tolerant central cluster coordinator. The challenges included recovering from coordinator crashes and enabling atomic distributed operations for cluster configuration management using an external consensus-based system.
RAMCloud Papers (that I have worked on):
SLIK: Scalable Low-Latency Indexes for a Key-Value Store: Describes how a large-scale key-value storage system can be extended to provide secondary indexes while meeting the goals of low latency, high scalaibity, consistency and high availability. To appear in USENIX Annual Technical Conference (ATC) in June 2016.
The RAMCloud Storage System: Comprehensive paper describing RAMCloud, including the log-structured storage mechanism, RAMCloud's thread architecture and approach to low latency, and its crash recovery mechanisms. Appeared in ACM Transactions on Computer Systems (TOCS) in September 2015.
Implementing Linearizability at Large Scale and Low Latency: Describes general-purpose mechanism for converting at-least-once RPC semantics to exactly-once semantics, thereby making it easy to turn non-linearizable operations into linearizable ones. Appeared in ACM Symposium on Operating Systems Principles (SOSP) in October 2015.
Log-Structured Memory for DRAM-based Storage: Describes how RAMCloud manages the storage of objects both in DRAM and on disk. Appeared in USENIX Conference on File and Storage Technologies (FAST) in February 2014; won Best Paper Award.
Other great experiences:
In Summer 2013 I interned at the late Microsoft Research - SVC, and worked with Marcos Aguilera as well as Mahesh Balakrishnan and Rama Kotla. We developed an algorithm for low-latency distributed transactions and provided an informal proof of correctness.
In Spring 2014, I was the teaching assistant for a course on Advanced Topics in Operating Systems (CS240) with Dawson Engler. In Fall 2012, I was the TA for a graduate course in Programming Languages ( CS242) with Steve Cooper. I also gave a lecture on concurrency for this class.
I did my B.E. (Hons) in Computer Science at BITS, Pilani - Goa Campus. I developed MobiDSL - a Domain Specific Language for Mobile Web. I was one of the founders of the student chapter of Computer Society of India (CSI) and an initial core member of the student chapter of ACM at my university.
I interned at the Supercomputing Research Facility in Bhabha Atomic Research Center (BARC), Mumbai in Summer 2008; at Department of Computer Science and Automation in Indian Institute of Science (IISc) in Summer 2009, Bangalore; and at Yahoo!, Bangalore in Spring 2010.
In my free time, I enjoy social dancing (particularly Waltz) and German-style board games.
ankitak [at] cs [dot] stanford [dot] edu
On most days, I'm at:
353 Serra Mall, 444 Gates
Stanford, CA 94305