Don’t lose sleep over availability: The GreenUp decentralized wakeup service

Proc. 9th Networked Systems Design and Implementation (NSDI) |

14 pages

Large enterprises can save significant energy and
money by putting idle desktop machines to sleep. Many
systems that let desktops sleep and wake them on demand
have been proposed, but enterprise IT departments
refuse to deploy them because they require special hardware,
disruptive virtualization technology, or dedicated
per-subnet proxies, none of which are cost-effective. In
response, we devised GreenUp, a minimal software-only
system that allows any machine to act as a proxy for
other sleeping machines in its subnet. To achieve this,
GreenUp uses novel distributed techniques that spread
load through randomization, efficiently synchronize state
within a subnet, and maintain a minimum number of
proxies despite the potential for correlated sleep times.
In this paper, we present the details of GreenUp’s design
as well as a theoretical analysis demonstrating its correctness
and efficiency, using empirically-derived models
where appropriate. We also present results and lessons
from a seven-month live deployment on over 100 machines;
a larger deployment on ~1,100 machines is currently
ongoing.