Re: [fuse-devel] [fuse] Unexpectedly large number of getattr() and lookup requests

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

 



On Tue, Dec 4, 2018 at 8:04 PM Nikolaus Rath <Nikolaus@xxxxxxxx> wrote:
>
> On Dec 04 2018, Miklos Szeredi <miklos@xxxxxxxxxx> wrote:

> > The GETATTR requests are due atime invalidations.
>
> Could you elaborate? I'm not sure what that means here. What is an atime
> invalidation?

POSIX states that on read(2), readdir(3), readlink(2), etc, the
st_atime of the file/directory/symlink needs to be updated to the
current time.  So when e.g. a READ request is sent, fuse will
invalidate the cache in the belief that the server will update the
atime.  In this casea subsequent stat(2) will find the invalid cache
and will issue a GETATTR to the server, which will reply with an
updated atime value.

The problem with the above is that atime is used by very few
applications, and by default it isn't even updated like POSIX
requires, due to the performance penalty it imposes on normal
workloads.

So fuse could also be more relatime/noatime friendly and not
invalidate the cached attributes when not necessary.  This is on my
todo list, but patches are welcome, as always.

Thanks,
Miklos



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux