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

Reply via email to