UCSC-SOE-13-02: In-Vivo Storage System Development

Noah Watkins, Carlos Maltzahn, Scott Brandt, Ian Pye, and Adam Manzanares
03/16/2013 11:13 PM
Computer Science
The emergence of high-performance open-source stor- age systems is allowing application and middleware de- velopers to consider non-standard storage system inter- faces. In contrast to the common practice of translating all I/O access onto the POSIX file interface, it will soon be common for application development to include the co-design of storage system interfaces. In order for de- velopers to evolve a co-design in high-availability clus- ters, services are needed for in-vivo interface evolution that allows the development of interfaces in the context of a live system.

Current clustered storage systems that provide inter- face customizability expose primitive services for man- aging static interfaces. For maximum utility, creating, evolving, and deploying dynamic storage interfaces is needed. However, in large-scale clusters, dynamic in- terface instantiation will require system-level support that ensures interface version consistency among stor- age nodes and clients. We propose that storage systems should provide services that fully manage the life-cycle of dynamic interfaces that are aligned with the com- mon branch-and-merge form of software maintenance, including isolated development workspaces that can be combined into existing production views of the system.