[Gluster-devel] distributed files/directories and [cm]time updates

Joseph Fernandes josferna at redhat.com
Tue Jan 26 04:35:05 UTC 2016

Addition case on ctime,

1. When we do internal operations like rebalance, tier-migration, afr-heal etc ctime time changes, this is not desirable as its a internal fop
2. For a compliance case(WORM-Retenetion), ctime change means there is something that has changes on a READ-ONLY file, which is be a point of concern. 

I agree with you on the overhead of booking keep of this xattr and sync between bricks and will add to the random access of the disk.
Also there is a window where we can get inconsistent, i.e ctime has changed as a result of a normal fop and before we get to save it in the xattr brick goes down.
Well this situation can be handled with replication sync however. Just thought of bring it to notice.

----- Original Message -----
From: "Pranith Kumar Karampuri" <pkarampu at redhat.com>
To: "Gluster Devel" <gluster-devel at gluster.org>
Sent: Tuesday, January 26, 2016 8:17:14 AM
Subject: [Gluster-devel] distributed files/directories and [cm]time updates

       Traditionally gluster has been using ctime/mtime of the 
files/dirs on the bricks as stat output. Problem we are seeing with this 
approach is that, software which depends on it gets confused when there 
are differences in these times. Tar especially gives "file changed as we 
read it" whenever it detects ctime differences when stat is served from 
different bricks. The way we have been trying to solve it is to serve 
the stat structures from same brick in afr, max-time in dht. But it 
doesn't avoid the problem completely. Because there is no way to change 
ctime at the moment(lutimes() only allows mtime, atime), there is little 
we can do to make sure ctimes match after self-heals/xattr 
updates/rebalance. I am wondering if anyone of you solved these problems 
before, if yes how did you go about doing it? It seems like applications 
which depend on this for backups get confused the same way. The only way 
out I see it is to bring ctime to an xattr, but that will need more iops 
and gluster has to keep updating it on quite a few fops.

Gluster-devel mailing list
Gluster-devel at gluster.org

More information about the Gluster-devel mailing list