hi, i'm studying PAST, a storage system built on top of the Pastry routing infrastructure.
One of the invariants that PAST can guarantee is that k replicas of a given file are maintained. The id of nodes responsible for the k replicas are the owner of the fileId , and its closest nodes. For example, given k =3, a file is copied is copied on a node A, and its 2 closests nodes in the leafset. Now, what I don't understand is how this system works when the owner of the key crashes. The routing tables and leafsets of the 2 replicas will be fixed by the internal Pastry algorithms, so no stale entries. But, how do the replica nodes should handle the objects that they are currently storing? Should every replica node periodically (thus actively) check whether it can elect itself to primary copy of the object ? If so, this would contradict the so called 'lazy-replication' mechanism as it is defined in the paper. Accepting this scenario, isn't there a more efficient way than performing a route(fileId) to test if a given node receives itself the request (thus becoming the root for the fileId's key) ? In my environment where ~250 machines are dedicated to the storage, every node can be a potential replica node for thousands of objects: issuing a route(..) for each of these objects is not scalable. Thanks for any suggestions. Valerio Schiavoni
_______________________________________________ p2p-hackers mailing list [email protected] http://lists.zooko.com/mailman/listinfo/p2p-hackers
