[Gluster-devel] trusted.glusterfs.version xattr

Gordan Bobic gordan at bobich.net
Wed May 7 16:38:13 UTC 2008


Martin Fick wrote:
 > > --- Krishna Srinivas <krishna at zresearch.com> wrote:
 > >
 >> >> Correct, if machines running afrs are not time sync,
 >> >> it can cause problems.
 >> >> We were thinking of using parent's directories
 >> >> version as the file's createtime attribute. We
 >> >> increment the parent dir version first then
 >> >> create the file and apply parent's version as the
 >> >> file's createtime.
 >> >> Any thought on this?
 > >
 > >  /dir1/dir2/file
 > >
 > >   file and dir2 are deleted
 > >   dir2 is re-added
 > >   file is re-added and dir2 version is now the
 > >        same as it was before it was deleted.
 > >
 > > Same problem as before but one level higher.  You
 > > would need to version all the way to the root, "/",
 > > for this to work, wouldn't you?

No. You just need to treat directories the same as any other file. When
a create/delete operation happens, the directory version gets bumped up.
So removing and creating a subdirectory (or a file) would result in the
created file/directory having a major version 2 versions higher than the
previous instance.

 > > Directory moves could create a similar problem:
 > >
 > >   /dir1/dir2/file
 > >   /dir1/dir3/file
 > >
 > >   /file and dir2 deleted.
 > >   dir3 moved to dir2 and happened to match file
 > >     and dir2 version #s.
 > >
 > > but I think that versioning to the root would again
 > > solve this?

You don't need versioning up to the root, you just have to treat moves
the same way as copy+delete from the versioning point of view. This
doesn't mean you actually have to copy+delete - you just have to update
the metadata as if you did.

Gordan





More information about the Gluster-devel mailing list