9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: hiro <23hiro@gmail.com>
To: 9fans <9fans@9fans.net>
Subject: Re: [9fans] 9p server to multiply 9p messages?
Date: Wed, 1 Jun 2022 18:31:19 +0300	[thread overview]
Message-ID: <CAFSF3XO+xR3DrUVNLSgGFier-2tVW9n8-QnP_Eo2GG3mjH+6cQ@mail.gmail.com> (raw)
In-Reply-To: <CAP6exYLAifuBhXyoG7KfwzOd6s7mHfZ35zYiXXVPAosEn+ZjwQ@mail.gmail.com>

I don't think the reason nobody is doing this is that it's difficult per se.

Fcp also achieves parallelism without any changes to 9p.

And posix fs also share some of our statefulness.

A file system can have offsets, readahead can help.

Other synthetic FS need different tricks, but we can exchange some
guarantees that are only needed in seekable files for an optimization
that shall only be done on pipes and streaming access.

There's some trivial heuristic solutions for this but they are not
generic naturally.

If one were to do this right, after a few increments one will see that
bandwidth limits are hit, which is a new problem that is much harder
to solve and impossible without even more heuristics classifications
possibly applied by a distributed 9p scheduler (dynamic multi hop
network congestion awareness anybody?)

On 6/1/22, ron minnich <rminnich@gmail.com> wrote:
> On Tue, May 31, 2022 at 11:29 AM hiro <23hiro@gmail.com> wrote:
>>
>> so virtiofs is not using 9p any more?
>>
>> and with 10 million parallel requests, why shouldn't 9p be able to
>> deliver 10GB/s ?!
> 
> Everyone always says this. I used to say it too.
> 
> 9p requires a certain degree of ordering -- as Andrey once pointed
> out, it's not productive to close a file, then write it. So there is a
> tricky ordering requirement you need to get right, due to Plan 9 being
> stateful.
> 
> The way we use 9p in Plan 9, as a general purpose protocol for
> everything, like devices, requires that each Tread or Twrite occur in
> order, but also requires that each T be retired before the next T is
> issued. devmnt does  this. If you don't do this, hardware can get
> confused (e.g. ordering of Twrite followed by Tread followed by Twrite
> needs to be maintained. E.g. you don't want to issue the Tread before
> you know the Twrite happened.  E.g. pre-posting 100 Treads to
> /dev/mouse is not a good idea if you suddenly want to do a Twrite in
> the middle of it).
> 
> This is why 9p starts to perform poorly in networks with high
> bandwidth*delay products -- if you watch the net traffic, you see each
> T op  on fid blocked by the previous Reply (by devmnt).
> 
> I never figured out a way to fix this without fixing devmnt -- by
> removing its general nature.
> 
> But, more to the point, whether or not 9p should be able to do all
> these parallel requests and get high performance, nobody has yet done
> it. The only numbers ever reported for making high bandhwidth*delay
> networks better were in Floren's thesis, when he added Tstream.
> 
> After 20+ years of this discussion, I start to wondering whether it's
> harder than it looks.
> 
> ron

------------------------------------------
9fans: 9fans
Permalink: https://9fans.topicbox.com/groups/9fans/T769854fafd2b7d35-M2be93c6a04bb2586cba3b797
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription

  parent reply	other threads:[~2022-06-01 15:31 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-28 16:02 fgergo
2022-05-28 18:43 ` Skip Tavakkolian
2022-05-28 19:21   ` ron minnich
2022-05-29 10:33     ` fgergo
2022-05-29 10:23   ` fgergo
2022-05-29 11:41     ` fgergo
2022-05-29 23:16 ` Bakul Shah
2022-05-30  4:59   ` ori
2022-05-30  7:19     ` Bakul Shah
2022-05-30  8:03       ` fgergo
2022-05-30  8:35       ` hiro
2022-05-31 16:14       ` ron minnich
2022-05-31 18:27         ` hiro
2022-05-31 18:35           ` ori
2022-06-01 12:00           ` ron minnich
2022-06-01 14:51             ` ori
2022-06-01 15:31             ` hiro [this message]
2022-06-01 15:39               ` hiro
2022-06-01 16:01             ` ori
2022-06-01  4:26         ` Bakul Shah
2022-06-01  7:25           ` hiro
2022-06-01 15:55           ` Jacob Moody
2022-06-01 17:56             ` Steve Simon
2022-06-01 22:29               ` hiro
2022-05-30  8:33     ` hiro

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=CAFSF3XO+xR3DrUVNLSgGFier-2tVW9n8-QnP_Eo2GG3mjH+6cQ@mail.gmail.com \
    --to=23hiro@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).