metadata for stat : Should it be identical?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/25/13 13:33, Anand Avati wrote:
> On Fri, Oct 25, 2013 at 12:51 PM, James <purpleidea at gmail.com
> <mailto:purpleidea at gmail.com>> wrote:
>
>     On Fri, Oct 25, 2013 at 3:18 PM, Anand Avati <avati at gluster.org
>     <mailto:avati at gluster.org>> wrote:
>      > In normal operations they will differ as much as the time drift
>     between the
>      > servers + lag in delivery/issue of write() calls on the servers.
>     This delta
>      > is "fixed up" by consistently returning the highest of the two mtimes
>      > whenever queried.
>
>
>     But lets says we have replica == 2.
>     On server A this mtime is 4:45
>     On server B this mtime is 4:46
>     So fuse queries the times, and it returns the max, which is 4:46.
>     All is good.
>     Suppose now that server B is down, and the query is run again.
>     It should now return 4:45, although this means that file has changed
>     mtime.
>     This could break client operations, which may care about a change in
>     mtime.
>
>     Note that I don't expect differences of 1 minute, but I just chose
>     arbitrary values to make understanding the example easier.
>
>     So isn't this a bug?
>
>
> This is a known behavior - when a server goes down, files can witness a
> changed mtime (but I don't think that is what the original post was
> about). We could provide a new feature/enhancement to keep mtimes in
> sync with explicit utimes() call per-write() - but that might be too
> expensive for most users.

Also, the time used would have to be sent from the client (using the 
client's time.) Otherwise, every query will cause a time negotiation 
between all servers to figure out the "proper" time.

Then it will be on the users to keep all clients sync'd, or you will 
have competing time updates.

-- 
Mr. Flibble
King of the Potato People


[Index of Archives]     [Gluster Development]     [Linux Filesytems Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux