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 <23h...@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 <rminn...@gmail.com> wrote:
>> On Tue, May 31, 2022 at 11:29 AM hiro <23h...@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 via email to