DISP: The Distributed Information Storage Protocol

DISP is a practical, efficient and secure client/server protocol for data storage and retrieval in a distributed environment.

DISP is practical because it is simple to describe, easy to implement, and makes reasonable assumptions about the capabilities of the client and server. DISP is efficient in terms of network traffic; even in the presence of failures, the protocol requires transferring only marginally more than L bytes in order to retrieve an object of size L. DISP is secure because all of the data is stored and transferred in an encrypted form; compromise of the network or a server reveals none of the data. DISP is also able to ensure integrity of the data so that the data can be retrieved correctly even when some servers have been corrupted.

DISP manages the storage of immutable data objects by distributing the responsibility of storing each data object among a pool of autonomous and independently functioning servers. DISP does not implement the semantics of a file system, although it may be used as the storage manager for a distributed file system based on immutable storage. Although DISP does not permit mutable objects, it does support versioning -- there may be any number of versions of each object, and all versions are accessible.

DISP is novel in several ways:

Code and Specs

The DISP specification and reference implementation are currently in a state of flux and have been removed from this page until the new version is complete. Because Dan and James are buried in other work right now, this might not happen until Summer 2004. If you would like a copy of the code used in the benchmarks that appear in Harvard Computer Science Technical Report TR-17-03, or to be told when the next revision is available, please send email to Daniel Ellard (or revisit this page every week or two, of that's your style).


Daniel Ellard <ellard@eecs.harvard.edu>