Tapestry (DHT)

[1] The Tapestry peer-to-peer system offers efficient, scalable, self-repairing, location-aware routing to nearby resources.

To address these problems a second generation of P2P applications were developed including Tapestry, Chord, Pastry, and CAN.

This allows for deterministic routing of messages and adaptation to node failures in the overlay network.

Of the named networks Pastry is very close to Tapestry as they both adopt the same routing algorithm by Plaxton et al. Tapestry is an extensible infrastructure that provides decentralized object location and routing focusing on efficiency and minimizing message latency.

Each node is assigned a unique nodeID uniformly distributed in a large identifier space.

Tapestry uses SHA-1 to produce a 160-bit identifier space represented by a 40 digit hex key.

Application specific endpoints GUIDs are similarly assigned unique identifiers.

NodeIDs and GUIDs are roughly evenly distributed in the overlay network with each node storing several different IDs.

The primary ith entry in the jth level is the ID and location of the closest node that begins with prefix (N, j-1)+i.

The new node then performs an iterative nearest neighbor search to fill all levels in its routing table.

Unexpected node failure is handled through redundancy in the network and backup pointers to reestablish damaged links.