In the Storage Tank project at IBM research, we have built a distributed file system that leverages high-speed storage networks to achieve performance and scale. Following a brief overview of Storage Tank’s architecture and goals, I will present two technologies for concurrency control that we have implemented and discuss how we employed simulation and analysis for performance evaluation and parameter selection.
First, Storage Tank provides a consistency model, called publish consistency, customized for the needs of scalable Web serving. Publish consistency composes the optimistic concurrency control techniques used in Web caching with the callback-invalidation protocols typically used in file systems. By slightly relaxing consistency constraints, publish consistency greatly improves the performance of a file system for Web-serving workloads.
Also, Storage Tank must be deployed on unreliable networks and commodity hardware and therefore must maintain data consistency and availability during communication errors, systems crashes, and other failures. Storage Tank employs leases for failure detection and state recovery of its clients. To reduce network overheads, we have added two techniques in lease management, called opportunistic renewal and stateless serving. Based on these techniques, we are able to implement a sub-second lease, making our system very responsive in the presence of failures.