From: Jamie Lokier <jamie@shareable.org>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: szaka@ntfs-3g.org, me@bobcopeland.com, hch@infradead.org,
akpm@linux-foundation.org, linux-kernel@vger.kernel.org,
linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH 0/7] OMFS filesystem version 3
Date: Fri, 18 Apr 2008 13:57:18 +0100 [thread overview]
Message-ID: <20080418125718.GD25089@shareable.org> (raw)
In-Reply-To: <E1JmpZz-0005pB-8q@pomaz-ex.szeredi.hu>
Miklos Szeredi wrote:
> Most filesystems (ntfs-3g included) cannot be modified from the
> outside, so coherency isn't an issue.
>
> Otherwise currently fuse provides rather crude settings for caching:
>
> - timeout for attributes (per-inode, default 1s)
> - timeout for names (per-dentry, default 1s)
> - page cache is bypassed completely (per-file, default off)
> - invalidation of page cache on open (per-open, default on)
Seems sensible. As someone who is deep in coherency protocols at the
moment (I'm writing a robust distributed database/filesystem) I don't
like the crudeness, but for FUSE's real life use it seems a fine choice :-)
> There are also plans to add some sort of cache coherency protocol,
> where the filesystem can asynchronously call back to fuse to
> invalidate data or metadata.
Great!
I suggest adding another option (as well) where the filesystem can ask
fuse to send it synchronous validation requests - some things require
that. (In my own work, the choice of A->B async invalidation and B->A
synchronous validation is heuristic: some usage patterns benefit from
one, some from the other.)
> > Otherwise I don't see how the kernel could coherently cache file pages
> > for some kinds of FUSE filesystems. (E.g. sshfs, for example: every
> > operation must surely invoke a user space request or involve granting
> > a caching right to the kernel, to keep accesses coherent with other
> > users of the same remote files).
> >
> > Ergo, either its not coherent, or there is some coherency protocol,
> > which does require _some_ work in the user space implementation.
>
> Sshfs is not coherent (but neither is NFS), it just has timeouts for
> caches and invalidation based on modification time.
Fwiw, I think NFS version 4 is coherent (it uses leases), and older
NFS should be coherent when you use fcntl file locks (it's not very
efficient though).
I have been bitten a few times by timeout based caches in the past
(NFS and SMB (pre-oplock)). Simple things like editing a file, then
running "ssh compiler-box make" from the editor quietly building
incorrect code - and even subsequent make commands don't fix it. Or
when I edit a file, then tell someone I've changed the file - and then
they edit the file, and my edits are lost. Very annoying. Nobody
should build those kind of caches into new software. :-)
-- Jamie
next prev parent reply other threads:[~2008-04-18 12:57 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-12 22:58 [PATCH 0/7] OMFS filesystem version 3 Bob Copeland
2008-04-13 0:03 ` Andrew Morton
2008-04-13 3:33 ` Bob Copeland
2008-04-13 3:55 ` Andrew Morton
2008-04-13 4:41 ` Bob Copeland
2008-04-13 8:01 ` Christoph Hellwig
2008-04-13 8:20 ` Andrew Morton
2008-04-13 8:28 ` Christoph Hellwig
2008-04-13 10:37 ` Miklos Szeredi
2008-04-13 21:15 ` David Woodhouse
2008-04-13 22:44 ` Andrew Morton
2008-04-13 22:49 ` Alan Cox
2008-04-13 23:10 ` Andrew Morton
2008-04-14 1:32 ` Bob Copeland
2008-04-14 5:48 ` Andrew Morton
2008-04-14 8:16 ` Alan Cox
2008-04-14 8:36 ` Andrew Morton
2008-04-14 8:41 ` Christoph Hellwig
2008-04-14 14:20 ` Chris Mason
2008-04-14 16:36 ` Bob Copeland
2008-04-14 16:51 ` Alan Cox
2008-04-14 17:18 ` Bob Copeland
2008-04-14 17:22 ` Alan Cox
2008-04-14 20:29 ` david
2008-04-18 13:13 ` Szabolcs Szakacsits
2008-04-14 20:55 ` Jeff Garzik
2008-04-14 21:11 ` Andrew Morton
2008-04-14 22:32 ` Evgeniy Polyakov
2008-04-14 23:21 ` Andrew Morton
2008-04-14 23:09 ` SL Baur
2008-04-14 23:24 ` Andrew Morton
2008-04-14 8:30 ` Xavier Bestel
2008-04-14 8:43 ` Christoph Hellwig
2008-04-14 8:44 ` Andrew Morton
2008-04-14 9:08 ` Christoph Hellwig
2008-04-14 9:09 ` Christoph Hellwig
2008-04-14 9:21 ` Andrew Morton
2008-04-14 10:09 ` David Woodhouse
2008-04-14 10:22 ` Andrew Morton
2008-04-14 10:36 ` David Woodhouse
2008-04-14 11:16 ` Christoph Hellwig
2008-04-15 15:16 ` Adrian Bunk
2008-04-15 16:57 ` Christoph Hellwig
2008-04-15 18:34 ` Andrew Morton
2008-04-15 18:53 ` Alan Cox
2008-04-15 20:02 ` Andrew Morton
2008-04-15 19:58 ` Alan Cox
2008-04-15 21:46 ` david m. richter
2008-04-15 19:24 ` Adrian Bunk
2008-04-15 20:11 ` Andrew Morton
2008-04-15 20:27 ` Adrian Bunk
2008-04-14 7:25 ` Miklos Szeredi
2008-04-14 7:49 ` Andrew Morton
2008-04-14 8:11 ` Miklos Szeredi
2008-04-14 8:11 ` Anton Altaparmakov
2008-04-14 8:26 ` Miklos Szeredi
2008-04-14 9:42 ` Jamie Lokier
2008-04-14 9:58 ` Miklos Szeredi
2008-04-14 11:05 ` David Woodhouse
2008-04-14 12:50 ` Miklos Szeredi
2008-04-14 11:55 ` Jamie Lokier
2008-04-14 11:57 ` Christoph Hellwig
2008-04-14 12:26 ` Miklos Szeredi
2008-04-14 22:35 ` Jamie Lokier
2008-04-15 11:33 ` Miklos Szeredi
2008-04-15 15:23 ` Jamie Lokier
2008-04-17 1:08 ` Szabolcs Szakacsits
2008-04-17 6:50 ` Jamie Lokier
2008-04-17 8:17 ` Miklos Szeredi
2008-04-14 0:45 ` Bob Copeland
2008-04-14 7:35 ` Miklos Szeredi
2008-04-18 10:30 ` Szabolcs Szakacsits
2008-04-18 11:52 ` Jamie Lokier
2008-04-18 12:20 ` Miklos Szeredi
2008-04-18 12:57 ` Jamie Lokier [this message]
2008-04-18 16:01 ` Miklos Szeredi
2008-04-18 16:15 ` Jamie Lokier
2008-04-18 13:51 ` Bob Copeland
2008-04-18 14:23 ` Miklos Szeredi
2008-04-18 14:43 ` Bob Copeland
2008-04-18 17:35 ` Szabolcs Szakacsits
2008-04-18 17:48 ` Bob Copeland
2008-04-18 12:46 ` Szabolcs Szakacsits
2008-05-01 14:45 ` Enrico Weigelt
2008-04-13 9:04 ` Alan Cox
2008-04-13 10:00 ` Pavel Machek
2008-04-15 3:14 ` Erez Zadok
[not found] <14725485.776281208170999085.JavaMail.szaka@kolumbus.fi>
2008-04-14 12:46 ` Szabolcs Szakacsits
2008-04-14 13:15 ` Anton Altaparmakov
2008-04-14 16:12 ` Szabolcs Szakacsits
[not found] <10224488.783261208172602425.JavaMail.szaka@kolumbus.fi>
2008-04-15 0:11 ` Szabolcs Szakacsits
2008-04-15 15:05 ` Adrian Bunk
[not found] <aiwLk-3mc-3@gated-at.bofh.it>
[not found] ` <aiwLk-3mc-5@gated-at.bofh.it>
[not found] ` <aiwLk-3mc-1@gated-at.bofh.it>
2008-04-16 9:56 ` Bodo Eggert
2008-04-16 9:56 ` Bodo Eggert
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080418125718.GD25089@shareable.org \
--to=jamie@shareable.org \
--cc=akpm@linux-foundation.org \
--cc=hch@infradead.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=me@bobcopeland.com \
--cc=miklos@szeredi.hu \
--cc=szaka@ntfs-3g.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.