[Bugs] [Bug 1318493] New: Introduce ctime-xlator to return correct (client-side set) ctime

bugzilla at redhat.com bugzilla at redhat.com
Thu Mar 17 04:39:44 UTC 2016


https://bugzilla.redhat.com/show_bug.cgi?id=1318493

            Bug ID: 1318493
           Summary: Introduce ctime-xlator to return correct (client-side
                    set) ctime
           Product: GlusterFS
           Version: mainline
         Component: core
          Keywords: FutureFeature
          Assignee: bugs at gluster.org
          Reporter: ndevos at redhat.com
                CC: bugs at gluster.org



Description of problem:
Gluster uses a POSIX filesystem to store files on the bricks. The atime and
mtime can be set with a SETATTR call, which translates to the utimes()
systemcall.

Some applications that do attribute caching (like NFS-clients, FS-Cache, ...)
invalidate the caches too often, because the ctime returned by a replicated
volume can be different depending on the subvolumes/bricks that the attributes
are read from.

Some user application have checks for ctime as well. One of the commonly used
applications that spits out a warning about different ctimes is "tar". When a
tar archive is created, the process does:
  1. check ctime
  2. read file (and store it in the archive)
  3. check ctime again
If the ctime is different in step (1) and (3), tar returns a warning:
  tar: <filename> file changed as we read it

To prevent this, Gluster should always return the ctime that was set by the
client-side. One possible way to do this, is by storing the ctime in an
extended attribute (like "trusted.gluster.ctime").

In addition, there are several Gluster internal processes that cause the ctime
(on the brick, XFS filesystem) to be changed. Self-heal, rebalance and
promotion/demotion with Tiering are two of the most common ones.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.


More information about the Bugs mailing list