PADS: a policy architecture for distributed storage systems
Nalini Moti Belaramani, Jiandan Zheng, Amol Nayate, Robert Soulé, Mike Dahlin, Robert Grimm · 2009
This paper presents PADS, a policy architecture for build-ing distributed storage systems. A policy architecture has two aspects. First, a common set of mechanisms that allow new systems to be implemented simply by defining new policies. Second, a structure for how policies, themselves, should be specified. In the case of distributed storage systems, PADS defines a data plane that pro-vides a fixed set of mechanisms for storing and trans-mitting data and maintaining consistency information. PADS requires a designer to define a control plane policy that specifies the system-specific policy for orches-trating flows of data among nodes. PADS then divides control plane policy into two parts: routing policy and blocking policy. The PADS prototype defines a concise interface between the data and control planes, it provides a declarative language for specifying routing policy, and it defines a simple interface for specifying blocking policy. We find that PADS greatly reduces the effort to design, implement, and modify distributed storage systems. In particular, by using PADS we were able to quickly construct a dozen significant distributed storage systems spanning a large portion of the design space using just a few dozen policy rules to define each system.