[Gluster-devel] AFR documentation

Krishna Srinivas krishna at zresearch.com
Fri Oct 19 07:52:04 UTC 2007

On 10/18/07, Thierry EXCOFFIER <exco at bat710.univ-lyon1.fr> wrote:
> Krishna Srinivas wrote:
> > Self-Heal
> > AFR has self-heal feature, which updates the outdated file and directory
> > copies by the most recent versions. For example consider the following
> > config:
> >
> > volume afr-example
> >   type cluster/afr
> >   subvolumes brick1 brick2
> > end-volume
> Hello.
> Imagine you have :
>         On network 1 : client 1 (AFR) and server 1 (brick1)
>         On network 2 : client 2 (AFR) and server 2 (brick2)
> The networks are disconnected.
> The 2 clients continue to write on the AFR brick on the same file.
> The networks are reconnected.
> For the file modified by the 2 clients :
>    - If the version numbers are differents, the file with the bigger
>      version number is copied over the older version.
>      (It's may be not the file with the more recent modification time)

Good point. we currently can not handle this particular situation.
What we can do is provide a config option to make the backend
FS readonly when one of the children is disconnected. We can also
make AFR see if the lower version numbered copy has a more recent
modification time than the higher versioned number (differing by "x" seconds
in which case return EIO for all the ops on that file and let the admin
fix the issue. Suggestions are welcome.

(we cant replace versioning by mtime because there might be network
delay resulting in different mtimes for the same write call)

>    - If the version numbers are identicals, do you detect that
>      the file content is not the same ?

No. But we can have improve the safety level to handle such cases
by further checking if the copies differ by mtime (by more than 30 secs, say)
or if they have different file sizes etc in which case we can return EIO.
Again suggestions are welcome.

> Sincerely yours.
> Thierry.
> --
> Thierry.EXCOFFIER@@liris.univ-lyon1.fr//   GO: Oriental Strategy Game
> LIRIS/UFR Informatique, bat710       //DYLAN: Programming Language
> Universite Claude Bernard LYON 1  __// UNIX: Standard Operating System
> 43 Bd du 11 novembre 1918       //
> 69622 VILLEURBANNE, FRANCE     //WWW: http://www710.univ-lyon1.fr/~exco
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at nongnu.org
> http://lists.nongnu.org/mailman/listinfo/gluster-devel

More information about the Gluster-devel mailing list