I’ve just uploaded the camera-ready of our HotNets 2013 paper, titled “Trevi: Watering Down Storage Hotspots with Cool Fountain Codes“. This is my first foray into fountain coding, and it’s really exciting working with George Parisis (who has done lots of cool work in this field) to apply it as the backend storage to upcoming projects.
For instance, I’m working with Thomas Gazagnaire on a branch-consistent database called Irminsule, which aims to support very scalable git-style persistent programming. Another interesting k/v store is Arakoon which we ported to MirageOS, and Trevi provides a nice mechanism for retrieving large binary values.
Here’s the abstract:
Datacenter networking has brought high-performance storage systems research to the foreground once again. Many modern storage systems are built with commodity hardware and TCP/IP networking to save costs. We highlight a group of problems that are present in such storage systems and which are all related to the use of TCP. As an alternative, we explore Trevi: a fountain coding-based approach for distributing I/O requests that overcomes these problems while still efficiently scheduling resources across both networking and storage layers. We also discuss how receiver-driven flow and congestion control, in combination with fountain coding, can guide the design of Trevi and provide a viable alternative to TCP for datacenter storage.
The attraction of our fountain coding scheme is its simplicity when compared to dealing with TCP-based retrieval, particularly for larger k/v stores where multiple nodes can respond without any strong synchronization. Comments on the paper are most welcome ahead of HotNets!
Trevi: Watering Down Storage Hotspots with Cool Fountain Codes, George Parisis, Toby Moncaster, Anil Madhavapeddy and Jon Crowcroft in the Twelfth ACM Workshop on Hot Topics in Networks (HotNets-XII), Nov 2013.