Check out the new USENIX Web site. next up previous
Next: Replica addition Up: Replica set management Previous: Replica set management


File creation

We describe the interactions between the modules of the system and the use of various data structures using a simple scenario--a user on server S creates file $F$ in directory $D$.

For the moment, assume that S already stores a replica of $D$ (if not, S creates one, using the protocol described in Section 4.2.) First, S determines the location of $g$ initial replicas of $F$, which will become the gold replicas of the file (a typical value for $g$ is 3). One replica will reside on $S$. The other $g-1$ replicas are chosen at random from different regions in the system to improve the expected availability of the file. Second, S creates the local replica for $F$ and adds an entry for $F$ in the local replica of $D$. S then replies to the client, and the client can start accessing the file.

In the background, S disseminates two types of updates. It first ``floods'' the new directory contents to other directory replicas. It also floods the contents of $F$ (which is empty, save for attributes such as permissions and owner) to its gold-replica nodes. In practice, as we describe in Section 5, we deploy several techniques to reduce the overhead of flooding dramatically. As a side effect of the propagation, the replicas of $D$ will point to $F$'s gold replicas so that the latter can be discovered during future path-name lookups.


next up previous
Next: Replica addition Up: Replica set management Previous: Replica set management
Yasushi Saito 2002-10-08