Flexible Wide Area Storage for Distributed Systems with WheelFS
WheelFS is a wide-area distributed storage system intended to help multi-site applications share data and gain fault tolerance. WheelFS takes the form of a distributed ﬁle system with a familiar POSIX interface. Its design allows applications to adjust the tradeoff between prompt visibility of updates from other sites and the ability for sites to operate independently despite failures and long delays. WheelFS allows these adjustments via semantic cues, which provide application control over consistency, failure handling, and ﬁle and replica placement. WheelFS is implemented as a user-level ﬁle system and is deployed on PlanetLab and Emulab. Three applications (a distributed Web cache, an email service and large ﬁle distribution) demonstrate that WheelFS’s ﬁle system interface simpliﬁes construction of distributed applications by allowing reuse of existing software. These applications would perform poorly with the strict semantics implied by a traditional ﬁle system interface, but by providing cues to WheelFS they are able to achieve good performance. Measurements show that applications built on WheelFS deliver comparable performance to services such as CoralCDN and BitTorrent that use specialized wide-area storage systems.
There is a growing set of Internet-based services that are too big, or too important, to run at a single site. Examples include Web services for e-mail, video and image hosting, and