Ivy is a multi-user read/write peer-to-peer file system. It is suitable for small cooperative groups spread over large geographic areas. Ivy allows such groups to avoid the reliability and trust problems inherent in use of a central file server.

An Ivy file system consists solely of a set of logs, one log per participant. Ivy stores its logs in the DHash distributed hash table. Each participant finds data by consulting all logs, but performs modifications by appending only to its own log. This arrangement allows Ivy to maintain meta-data consistency without locking. Ivy users can choose which other logs to trust, an appropriate arrangement in a semi-open peer-to-peer system.

Ivy presents applications with a conventional file system interface. When the underlying network is fully connected, Ivy provides traditional semantics, such as close-to-open consistency. Ivy detects conflicting modifications made during a partition, and provides relevant version information to application-specific conflict resolvers.


Athicha Muthitacharoen, Robert Morris, Thomer M. Gil, and Benjie Chen. Ivy: A Read/Write Peer-to-peer File System. To appear in Fifth Symposium on Operating Systems Design and Implementation (OSDI). Boston, MA. December 2002. Abstract, PostScript, Compressed PostScript, PDF.


Ivy is a research quality software. Its quality and performance also depend heavily on those of Chord/DHash. We will be making releases as we fix bugs and improve the software. To run Ivy, you need to download, build, and install SFS and Chord/DHash.

We are working on writing documentations. For now, read this file on how to use Ivy. If you run into problems, email us.



Benjie Chen
Thomer M. Gil
Robert Morris
Athicha Muthitacharoen


This material is based upon work supported by the National Science Foundation under Grant No. 0238028.