9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "Francisco J Ballesteros" <nemo@lsub.org>
To: "Fans of the OS Plan 9 from Bell Labs" <9fans@cse.psu.edu>
Subject: Re: [9fans] QTCTL?
Date: Wed, 31 Oct 2007 23:26:07 +0100	[thread overview]
Message-ID: <8ccc8ba40710311526o4a5e55a7wf04f12844d4d4b66@mail.gmail.com> (raw)
In-Reply-To: <ee9e417a0710311440v42a736a9jceb925c6f34394c3@mail.gmail.com>

>
> If I'm doing tail -f on a remote log file and tail -f
> just does occasional reads at the end of the file,
> then you will get the wrong answer, because once
> the cache sees the eof it will never issue another
> read.

If the file is "decent", the cache must still check out
that the file is up to date. It might not do so all the times
(as we do, to trade for performance, as you say). That means
that the cache would get further file data as soon as it sees
a new qid.vers for the file. And tail -f would still work.

However, for some indecent files ;), the cache may have problems
even if it trusts the file length as reported by the server or the qid.vers.

QTAPPEND is indeed something that says that file is weird, QTCL would
just signal the general case, not just a +a file.

I can do a quick experiment using Op just to see if by faking up some QTCTLs
in the Op server, the client may work with all files, even clone ones.
And see what
happens. I´m not seeking for coherency, I´d just like to be able to
cache what I can,
(keeping races as they are), to better tolerate latency.

thanks a lot for all the comments, btw.

> It is a fundamental problem with implementing
> caching atop a system that is not intended to be
> cached.  Having a QTCTL bit (or a QTOKTOCACHE bit)
> will not solve the problem.
>
> Cfs is not magic.  It trades some of the reliability
> of 9P for some performance.  It doesn't do a perfect
> job.  If you choose to use cfs then you are accepting
> those degradations in semantics, even for "disk files".
>
> What you really need is a way to ask the server "can I
> cache the following?" and have the server say yes or no
> and then have some way to invalidate the cache, so that
> you get coherent behavior, even in the above case.
> We discussed various ways to add this to the protocol
> but ultimately we didn't see any way that was simple
> enough that the specification effort wasn't outweighed
> by our not needing to solve the problem at that time.
> (We did add QTAPPEND to fix one glaring cfs bug.)
>
> By all means experiment with real caching protocols
> using 9P.  Perhaps you will find a nice way to add it
> and then 9P2010 can adopt it.  QTCTL isn't enough though:
> it pushes your problems farther away but doesn't solve them.
>
> Russ
>

  parent reply	other threads:[~2007-10-31 22:26 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-31 18:40 Francisco J Ballesteros
2007-10-31 18:56 ` Eric Van Hensbergen
2007-10-31 19:13   ` Charles Forsyth
2007-10-31 19:33     ` Eric Van Hensbergen
2007-10-31 19:39       ` erik quanstrom
2007-10-31 20:43     ` geoff
2007-10-31 21:32       ` Charles Forsyth
2007-10-31 22:48       ` roger peppe
2007-10-31 23:35         ` erik quanstrom
2007-11-01  9:29           ` roger peppe
2007-11-01 11:03             ` Eric Van Hensbergen
2007-11-01 11:19               ` Charles Forsyth
2007-11-01 12:11             ` erik quanstrom
2007-10-31 19:42 ` erik quanstrom
2007-10-31 19:49   ` Eric Van Hensbergen
2007-10-31 20:03     ` erik quanstrom
2007-10-31 20:10       ` Latchesar Ionkov
2007-10-31 20:12       ` Eric Van Hensbergen
2007-10-31 20:17       ` Russ Cox
2007-10-31 20:29         ` Francisco J Ballesteros
2007-10-31 20:48           ` Charles Forsyth
2007-10-31 21:23             ` Francisco J Ballesteros
2007-10-31 21:40               ` Russ Cox
2007-10-31 22:11                 ` Charles Forsyth
2007-10-31 22:26                 ` Francisco J Ballesteros [this message]
2007-10-31 22:37                   ` Charles Forsyth
2007-10-31 22:43                     ` Francisco J Ballesteros
2007-10-31 23:32                     ` Eric Van Hensbergen
2007-10-31 23:41                       ` [V9fs-developer] " Charles Forsyth
     [not found]                       ` <606b6f003ae9f0ed3e8c3c5f90ddc720@terzarima.net>
2007-11-01  1:13                         ` Eric Van Hensbergen
2007-10-31 23:54                   ` erik quanstrom
2007-11-01  0:03                     ` Charles Forsyth
2007-11-01  1:25                     ` Eric Van Hensbergen
2007-11-01  1:44                       ` erik quanstrom
2007-11-01  2:15                         ` Eric Van Hensbergen
2007-11-01  7:34                       ` Skip Tavakkolian
2007-11-01  6:21                 ` Bakul Shah
2007-11-01 14:28                   ` Russ Cox
2007-11-01 14:38                     ` erik quanstrom
2007-11-01 14:41                     ` Charles Forsyth
2007-11-01 15:26                     ` Sape Mullender
2007-11-01 15:51                       ` Latchesar Ionkov
2007-11-01 16:04                         ` ron minnich
2007-11-01 16:16                           ` Latchesar Ionkov
2007-11-01 16:21                           ` Sape Mullender
2007-11-01 16:58                             ` Francisco J Ballesteros
2007-11-01 17:11                               ` Charles Forsyth
2007-11-01 17:11                                 ` Francisco J Ballesteros
2007-11-01 17:13                               ` Sape Mullender
2007-11-01 17:38                               ` ron minnich
2007-11-01 17:56                                 ` Francisco J Ballesteros
2007-11-01 18:01                                   ` Francisco J Ballesteros
2007-11-01 18:52                                   ` Eric Van Hensbergen
2007-11-01 19:29                                     ` Francisco J Ballesteros
2007-11-01 23:24                                   ` ron minnich
2007-11-01 17:03                           ` Russ Cox
2007-11-01 17:12                             ` Sape Mullender
2007-11-01 17:35                               ` erik quanstrom
2007-11-01 18:36                                 ` erik quanstrom
2007-11-01 17:13                             ` Charles Forsyth
2007-11-01 17:16                               ` Charles Forsyth
2007-11-01 17:20                                 ` Charles Forsyth
2007-11-01 17:52                             ` Eric Van Hensbergen
2007-11-01 18:00                             ` Latchesar Ionkov
2007-11-01 18:03                               ` Francisco J Ballesteros
2007-11-01 18:08                                 ` Latchesar Ionkov
2007-11-01 18:16                                   ` erik quanstrom
2007-11-01 18:19                                   ` Francisco J Ballesteros
2007-11-01 18:35                                     ` Sape Mullender
2007-11-01 19:09                                       ` Charles Forsyth
2007-11-01 19:07                                         ` erik quanstrom
2007-11-01 17:14                           ` Bakul Shah
2007-11-01 16:17                         ` Sape Mullender
2007-11-01 16:27                           ` Sape Mullender
2007-11-01 16:58                         ` Sape Mullender
2007-11-01 16:59                     ` Bakul Shah
2007-11-01  4:21 Brian L. Stuart

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=8ccc8ba40710311526o4a5e55a7wf04f12844d4d4b66@mail.gmail.com \
    --to=nemo@lsub.org \
    --cc=9fans@cse.psu.edu \
    /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).