Pastry: Scalable, Decentralized Object Location, and Routing for Large-Scale Peer-to-Peer Systems

Pastry: Scalable, Decentralized Object Location, and Routing for Large-Scale Peer-to-Peer Systems

2001 | Antony Rowstron and Peter Druschel
Pastry is a scalable, decentralized object location and routing system for large-scale peer-to-peer networks. It enables efficient routing and object location in a potentially very large overlay network connected via the Internet. Each node in the Pastry network has a unique 128-bit identifier (nodeId). When presented with a message and a key, a Pastry node efficiently routes the message to the node with a nodeId numerically closest to the key. Pastry is completely decentralized, self-organizing, and scalable, automatically adapting to node arrivals, departures, and failures. Experimental results with a prototype implementation on up to 100,000 nodes confirm Pastry's scalability, efficiency, and ability to self-organize and adapt to node failures. Pastry is designed to support a variety of peer-to-peer applications, including global data storage, data sharing, group communication, and naming. It provides a generic overlay network for constructing such applications. Applications like PAST and SCRIBE have been built on top of Pastry. PAST uses Pastry to store file replicas on k nodes with nodeIds numerically closest to a fileId, ensuring high availability. SCRIBE uses Pastry to route messages to a rendezvous point for publish/subscribe communication. Pastry's routing procedure ensures that messages are routed to nodes with nodeIds numerically closest to the key, minimizing the distance traveled according to a scalar proximity metric. Each node maintains a routing table, neighborhood set, and leaf set to facilitate efficient routing. The routing table is organized into rows, with each row containing entries for nodes with nodeIds sharing a common prefix. The leaf set contains nodes with nodeIds numerically closest to the present node's nodeId. Pastry's routing algorithm ensures that messages are routed to nodes that share a longer prefix with the key or are numerically closer to the key than the current node. The algorithm guarantees convergence and efficient routing, with the expected number of routing steps being O(log N), where N is the number of Pastry nodes. Pastry's locality properties ensure that messages are likely to reach nodes near the client, improving performance for applications like PAST. Pastry handles node failures and network partitions by maintaining and updating routing tables, ensuring eventual delivery of messages. It uses a heuristic to locate the nearest node among k numerically closest nodes, improving routing efficiency. Experimental results show that Pastry's routing performance scales well with network size, and its routing tables maintain good locality properties even under node failures. Pastry's ability to self-organize and adapt to node failures makes it a robust and efficient system for large-scale peer-to-peer applications.Pastry is a scalable, decentralized object location and routing system for large-scale peer-to-peer networks. It enables efficient routing and object location in a potentially very large overlay network connected via the Internet. Each node in the Pastry network has a unique 128-bit identifier (nodeId). When presented with a message and a key, a Pastry node efficiently routes the message to the node with a nodeId numerically closest to the key. Pastry is completely decentralized, self-organizing, and scalable, automatically adapting to node arrivals, departures, and failures. Experimental results with a prototype implementation on up to 100,000 nodes confirm Pastry's scalability, efficiency, and ability to self-organize and adapt to node failures. Pastry is designed to support a variety of peer-to-peer applications, including global data storage, data sharing, group communication, and naming. It provides a generic overlay network for constructing such applications. Applications like PAST and SCRIBE have been built on top of Pastry. PAST uses Pastry to store file replicas on k nodes with nodeIds numerically closest to a fileId, ensuring high availability. SCRIBE uses Pastry to route messages to a rendezvous point for publish/subscribe communication. Pastry's routing procedure ensures that messages are routed to nodes with nodeIds numerically closest to the key, minimizing the distance traveled according to a scalar proximity metric. Each node maintains a routing table, neighborhood set, and leaf set to facilitate efficient routing. The routing table is organized into rows, with each row containing entries for nodes with nodeIds sharing a common prefix. The leaf set contains nodes with nodeIds numerically closest to the present node's nodeId. Pastry's routing algorithm ensures that messages are routed to nodes that share a longer prefix with the key or are numerically closer to the key than the current node. The algorithm guarantees convergence and efficient routing, with the expected number of routing steps being O(log N), where N is the number of Pastry nodes. Pastry's locality properties ensure that messages are likely to reach nodes near the client, improving performance for applications like PAST. Pastry handles node failures and network partitions by maintaining and updating routing tables, ensuring eventual delivery of messages. It uses a heuristic to locate the nearest node among k numerically closest nodes, improving routing efficiency. Experimental results show that Pastry's routing performance scales well with network size, and its routing tables maintain good locality properties even under node failures. Pastry's ability to self-organize and adapt to node failures makes it a robust and efficient system for large-scale peer-to-peer applications.
Reach us at info@study.space