9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
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 09:19:47 +0100	[thread overview]
Message-ID: <df49a7370904210119t1a2f8afegfd314211567c3568@mail.gmail.com> (raw)
In-Reply-To: <14ec7b180904201428v1fc0845ayb042b6aa628e17cc@mail.gmail.com>

2009/4/20 andrey mirtchovski <mirtchovski@gmail.com>:
>> with 9p, this takes a number of walks...
>
> shouldn't that be just one walk?
>
> % ramfs -D
> ...
> % mkdir -p /tmp/one/two/three/four/five/six
> ...
> % cd /tmp/one/two/three/four/five/six
> ramfs 640160:<-Twalk tag 18 fid 1110 newfid 548 nwname 6 0:one 1:two
> 2:three 3:four 4:five 5:six
> ramfs 640160:->Rwalk tag 18 nwqid 6 0:(0000000000000001 0 d)
> 1:(0000000000000002 0 d) 2:(0000000000000003 0 d) 3:(0000000000000004
> 0 d) 4:(0000000000000005 0 d) 5:(0000000000000006 0 d)

that depends if it's been gated through exportfs or not
(exportfs only walks one step at a time, regardless of
the incoming walk)

i'm sure something like this has been discussed before,
and this idea somewhat half-baked, but one could get
quite a long way by allowing the notion of a sequence
of related 9p actions - if one action fails, then all subsequent
actions are discarded.

one difficulty with using multiple concurrent requests
with 9p as it stands is that there's no way to force
the server to process them sequentially. fcp works
because the reads it sends can execute out of order
without changing the semantics, but this only works
on conventional files.

suppose all 9p Tmsgs were given an sid (sequence id)
field. a new 9p message, Tsequence, would start
a sequence; subsequent messages with the same sid
would be added to a server-side queue for that sequence
rather than being executed immediately.

the server would move sequentially through the queue,
executing actions and sending each reply when complete.
the sequence would abort when one of:
a) an Rerror is sent
b) a write returned less than the number of bytes written
c) a read returned less than the number of bytes requested.

this mechanism would allow a client to "program" a set of
actions to perform sequentially on the server without
having to wait for each reply in turn, i.e. avoiding the
usual 9p latency.

some use cases:

the currently rather complex definition of Twalk could
be replaced by clone and walk1 instead, as
in the original 9p: {Tclone, Twalk, Twalk, ...}

{Twrite, Tread} gives a RPC-style request - no need
for venti to use its own protocol (which i assume was invented
largely because of the latency inherent in doing two
separate 9p requests where one would do).

streaming - send several speculative requests, and keep
adding a request to the sequence when a reply arrives.
still probably not as good as straight streaming TCP,
but easier than fcp and more general.

there are probably lots of reasons why this couldn't
work, but i can't think of any right now...



  reply	other threads:[~2009-04-21  8:19 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 [this message]
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
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=df49a7370904210119t1a2f8afegfd314211567c3568@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).