Ajay Gulati, Carl Waldspurger and I have just finished work on a distributed IO scheduling paper for the upcoming FAST 2009 conference. So I wanted to provide an update. PARDA is a research project to design a proportional-share resource scheduler that can provide service differentiation for IO like VMware already provides for CPU and Memory. In plain terms, how can we deliver better throughput and lower response times to the more important VMs irrespective of which host in a cluster they run on.
This is a really interesting and challenging problem. A bunch of us first started brainstorming in this area 2 years ago but despite several attempts, for over a year, we couldn’t come up with a comprehensive solution. For one thing, IO scheduling is a very hard problem. Second, there aren’t existing research papers that tackle our particular flavor of the problem (cluster filesystem). To top it off, the problem sounds easy at first blush, encouraging a lot of well-intentioned but ultimately misleading attempts.
Ajay and I first published a paper on our idea to use flow control (think TCP-style) to solve this problem at the SPEED 2008 workshop in Feb ’08 and the feedback from the research community was encouraging (this later became the basis for an ACM SIGOPS Operating Systems Review article, October 2008). Since then Ajay, Carl and I have worked out the major issues with this new technique resulting in the FAST paper.
The paper is entitled “PARDA: Proportional Allocation of Resources for Distributed Storage Access”. In addition to being the codename for our project and an acronym, the meaning of the word PARDA in Hindu/Urdu is highly relevant to the way our algorithm works. Let’s see if anyone can figure out the relationship. As a hint, there is a famous hindi song that starts with the words in the title of this blog entry 😉