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:39:34 +0300	[thread overview]
Message-ID: <CAFSF3XNWmfidgfP6wqgAP=oz8AMdoMmt5-YWcK2C-y48_6DPow@mail.gmail.com> (raw)
In-Reply-To: <CAFSF3XO+xR3DrUVNLSgGFier-2tVW9n8-QnP_Eo2GG3mjH+6cQ@mail.gmail.com>

In case this is not immediately clear: theoretically preventable 1rtt
minimum delays are much less bad than the practically unbounded
maximum delays in congested networks.

Put in another way: making some few things fast is much more easy than
making sure that everything else doesn't get infinitely slow as a
result to this.

Right now huge streams don't get huge unfair advantages unless the rtt
is very small or the parallelism very high

On 6/1/22, hiro <23hiro@gmail.com> wrote:
> 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-M099a56feb7c401cc1d0b3ed6
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription

  reply	other threads:[~2022-06-01 15:39 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
2022-06-01 15:39               ` hiro [this message]
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='CAFSF3XNWmfidgfP6wqgAP=oz8AMdoMmt5-YWcK2C-y48_6DPow@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).