linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  reply	other threads:[~2008-04-18 12:57 UTC|newest]

Thread overview: 92+ 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-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

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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).