From: roger peppe <rogpeppe@gmail.com>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] Plan9 - the next 20 years
Date: Tue, 21 Apr 2009 15:03:17 +0100 [thread overview]
Message-ID: <df49a7370904210703s3dc0c790xfeac3e3c0d3d75c1@mail.gmail.com> (raw)
In-Reply-To: <9260943c5ab5bb05fd7db0b5f7cfdbc0@quanstro.net>
2009/4/21 erik quanstrom <quanstro@quanstro.net>:
> what is the important use case of flush and why is this
> so important that it drives the design?
actually the in-order delivery is most important
for Rmessages, but it's important for Tmessages too.
consider this exchange (C=client, S=server), where
the Tflush is sent almost immediately after the Twalk:
C->S Twalk tag=5 fid=22 newfid=24
C->S Tflush tag=6 oldtag=5
S->C Rflush tag=6
if outgoing tags 5 and 6 were swapped, we could get
this possible exchange:
C->S Tflush tag=6 oldtag=5
S->C Rflush tag=6
C->S Twalk tag=5 fid=22 newfid=24
S->C Rwalk tag=5
thus the flush is incorrectly ignored.
this won't break the protocol though, but
consider this example, where Rmsgs
can be delivered out-of-order:
here, the server replies to the Twalk message
before it receives the Tflush. the clone succeeds:
C->S Twalk tag=4 fid=22 newfid=23
C->S Tflush tag=5 oldtag=4
S->C Rwalk tag=4
S->C Rflush tag=5
here the two reply messages are switched (erroneously):
C->S Twalk tag=4 fid=22 newfid=23
C->S Tflush tag=5 oldtag=4
S->C Rflush tag=5
S->C Rwalk tag=4
the Rflush signals to the client that the Twalk
was successfully flushed, so the client
considers that the clone failed, whereas
it actually succeeded. the Rwalk
is considered a spurious message (it may
even interfere destructively with subsequent Tmsg).
result: death and destruction.
anyway, this is moot - from the original plan 9 paper:
"The 9P protocol must run above a reliable transport protocol with
delimited messages. [...]
UDP [RFC768] does not provide reliable in-order delivery."
(is this the canonical reference for this requirement? the man page
doesn't seem to say it)
the protocol doesn't guarantee that requests are *processed*
in order, but that's a different thing entirely, and something
my half-baked proposal seeks to get around.
next prev parent reply other threads:[~2009-04-21 14:03 UTC|newest]
Thread overview: 101+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-17 22:08 Francisco J Ballesteros
2009-04-17 22:15 ` ron minnich
2009-04-17 22:35 ` J.R. Mauro
2009-04-17 23:01 ` ron minnich
2009-04-18 2:06 ` J.R. Mauro
2009-04-18 2:39 ` ron minnich
2009-04-18 2:43 ` J.R. Mauro
2009-04-18 5:55 ` lucio
2009-04-18 3:37 ` erik quanstrom
2009-04-18 4:04 ` J.R. Mauro
2009-04-18 4:16 ` erik quanstrom
2009-04-18 5:57 ` J.R. Mauro
2009-04-18 13:50 ` erik quanstrom
2009-04-18 14:53 ` lucio
2009-04-18 15:07 ` ron minnich
2009-04-18 15:11 ` erik quanstrom
2009-04-18 16:13 ` J.R. Mauro
2009-04-18 16:10 ` J.R. Mauro
2009-04-18 16:20 ` ron minnich
2009-04-18 16:26 ` erik quanstrom
2009-04-18 16:36 ` J.R. Mauro
2009-04-18 16:53 ` tlaronde
2009-04-18 17:12 ` andrey mirtchovski
2009-04-18 17:37 ` ron minnich
2009-04-18 23:31 ` Charles Forsyth
2009-04-18 23:26 ` J.R. Mauro
2009-04-18 17:35 ` J.R. Mauro
2009-04-18 5:58 ` lucio
2009-04-18 11:59 ` tlaronde
2009-04-18 14:31 ` tlaronde
2009-04-18 15:05 ` ron minnich
2009-04-18 15:33 ` tlaronde
2009-04-23 16:56 ` tlaronde
2009-04-24 15:33 ` ron minnich
2009-04-24 16:43 ` tlaronde
2009-04-18 15:16 ` Latchesar Ionkov
2009-04-19 19:34 ` Enrico Weigelt
2009-04-19 19:52 ` ron minnich
2009-04-19 7:12 ` Skip Tavakkolian
2009-04-19 15:26 ` David Leimbach
2009-04-20 2:14 ` Skip Tavakkolian
2009-04-20 14:58 ` Uriel
2009-04-20 17:18 ` maht
2009-04-20 18:15 ` J.R. Mauro
2009-04-20 18:30 ` maht
2009-04-20 19:02 ` Charles Forsyth
2009-04-20 18:03 ` Skip Tavakkolian
2009-04-20 18:07 ` erik quanstrom
2009-04-23 5:07 ` sqweek
2009-04-23 5:36 ` Nathaniel W Filardo
2009-04-23 11:51 ` erik quanstrom
2009-04-20 18:18 ` David Leimbach
2009-04-20 18:35 ` erik quanstrom
2009-04-20 18:55 ` David Leimbach
2009-04-20 19:03 ` erik quanstrom
2009-04-20 20:17 ` David Leimbach
2009-04-20 20:33 ` erik quanstrom
2009-04-20 21:18 ` David Leimbach
2009-04-20 21:28 ` andrey mirtchovski
2009-04-21 8:19 ` roger peppe
2009-04-21 12:00 ` roger peppe
2009-04-21 16:52 ` David Leimbach
2009-04-21 17:06 ` roger peppe
2009-04-21 17:11 ` David Leimbach
2009-04-21 7:38 ` Bakul Shah
2009-04-20 19:13 ` Steve Simon
2009-04-20 19:22 ` erik quanstrom
2009-04-20 18:39 ` Francisco J Ballesteros
2009-04-21 9:52 ` maht
2009-04-21 10:23 ` roger peppe
2009-04-21 12:04 ` erik quanstrom
2009-04-21 14:03 ` roger peppe [this message]
2009-04-21 14:09 ` erik quanstrom
2009-04-21 14:33 ` Fco. J. Ballesteros
2009-04-21 14:50 ` erik quanstrom
2009-04-21 16:03 ` roger peppe
2009-04-21 16:09 ` erik quanstrom
2009-04-21 17:12 ` roger peppe
2009-04-21 17:43 ` erik quanstrom
2009-04-21 18:14 ` roger peppe
2009-04-21 16:38 ` Bakul Shah
2009-04-21 16:59 ` roger peppe
2009-04-21 16:10 ` Bakul Shah
2009-04-21 16:25 ` erik quanstrom
2009-04-21 17:03 ` David Leimbach
2009-04-21 17:23 ` roger peppe
2009-04-21 16:53 ` David Leimbach
-- strict thread matches above, loose matches on Subject: below --
2009-04-17 16:32 [9fans] VMs, etc. (was: Re: security questions) blstuart
2009-04-17 19:16 ` [9fans] Plan9 - the next 20 years Steve Simon
2009-04-17 19:39 ` J.R. Mauro
2009-04-17 19:43 ` tlaronde
2009-04-17 19:56 ` J.R. Mauro
2009-04-17 20:14 ` Eric Van Hensbergen
2009-04-17 20:18 ` Benjamin Huntsman
2009-04-18 4:26 ` erik quanstrom
2009-04-17 20:29 ` J.R. Mauro
2009-04-18 3:56 ` erik quanstrom
2009-04-18 4:12 ` J.R. Mauro
2009-04-18 4:16 ` erik quanstrom
2009-04-18 5:51 ` J.R. Mauro
2009-04-18 12:52 ` Steve Simon
2009-04-17 20:20 ` John Barham
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=df49a7370904210703s3dc0c790xfeac3e3c0d3d75c1@mail.gmail.com \
--to=rogpeppe@gmail.com \
--cc=9fans@9fans.net \
/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).