3. Related Work
요약
3.1 Peer to Peer Systems
File Sharing Systems
The first generation of P2P systems, such as Freenet and Gnutella1 , were predominantly used as file sharing systems.
Systems like Pastry [16] and Chord [20] use routing mechanisms to ensure that queries can be answered within a bounded number of hops. To reduce the additional latency introduced by multi-hop routing, some P2P systems (e.g., [14]) employ O(1) routing where each peer maintains enough routing information locally so that it can route requests (to access a data item) to the appropriate peer within a constant number of hops.
Storage Systems
such as Oceanstore / PAST
were built on top of these routing overlays.
To allow for concurrent updates while avoiding many of the problems inherent with wide-area locking, it uses an update model based on conflict resolution.
Oceanstore resolves conflicts by processing a series of updates, choosing a total order among them, and then applying them atomically in that order
By comparison, PAST provides a simple abstraction layer on top of Pastry for persistent and immutable objects. It assumes that the application can build the necessary storage semantics (such as mutable files) on top of it.
3.2 Distributed File Systems and Databases
Distributing data for performance, availability and durability has been widely studied in the file system and database systems community.
Compared to P2P storage systems, that only support flat namespaces, distributed file systems typically support hierarchical namespaces.
Google File System
built for hosting the state of Google’s internal applications.
GFS uses a simple design with a single master server for hosting the entire metadata and where the data is split into chunks and stored in chunk servers.
Ficus, Coda
replicate files for high availability at the expense of consistency
Farsite system
is a distributed file system that does not use any centralized server like NFS.
achieves high availability and scalability using replication.
Bayou
is a distributed relational database system that allows disconnected operations and provides eventual data consistency.
Last updated