| Measure | CAN | Chord | Tapestry | Plaxton mesh |
| Assumptions | - uses consistent hashing | - uses consistent hashing - unspecified namespace size. - names are hashed into m-bit identifiers. - nodes are (uniquely) labeled as m-bit identifiers. - names are stored on the corresponding nodes - N is the number of nodes in system (N<2m) - implicit total ordering of the nodes (keys). |
- N-sized namespace with IDs of base b | - Static network - N-sized namespace with IDs of base b - total ordering on all the nodes in the network |
| Search space modeled as | - multi-level coordinate space | - ring | - (Plaxton) mesh | - mesh |
| Look-up time | (d/4) * n1/d | O(log N) | O(logb N) | O(logb N) |
| Number of entries in routing table | 2d (almost? constant) | O(log N) | b (not independent of N!) | b |
| Size of routing table | ? | O(log N) ... = m * log N | b*logb N | b*logb N |
| Maintenance of routing table | - periodic refresh messages to (a constant number of) neighbors | - action only when changes occur | ||
| Node joins: cost | lookup time + O(d) for updating routing tables | O(log2 N) | O(log N) | |
| Node leaves: cost | lookup time + O(d) for updating routing tables | O(log2 N) | O(log N) | |
| Insert/Remove data | lookup time | - find the node with key K where data (k, value) resides.
O(log N) |
- periodic refreshments messages/lack of ~ | |
| Fault handling | - neighbors detected missing heartbeats - constant number of neighbors have to update their routing tables - reliability ensured through replicas in different coordinate spaces (called realities). |
- detect unresponsive neighbor during lookup operation. Replace it with its successor. | - detect missing heartbeats | |
| Comments | Elegance from using its own lookup mechanism for every supported
operation: insert/remove data, insert/remove node. Very meticulous presentation of design details, like simultaneous failure of multiple neighbors, load balancing, design improvements. Also, apparently very careful and complete performance results. (256K nodes!!! How? Simulations? Analytically?) |
Elegance from using its own lookup mechanism for every supported operation: insert/remove data, insert/remove node | - very much based on Plaxton (not much originality) |