From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: References: <5d375e920904200758m1a1a96den579673e107b57b19@mail.gmail.com> <7c22175ab60f8a5ae2cf894d462b29e5@9netics.com> <3e1162e60904201118u18e8846bkbfec62e561a15a91@mail.gmail.com> <3e1162e60904201155l2b29c0b7ge248c36f82f7324@mail.gmail.com> Date: Mon, 20 Apr 2009 13:17:13 -0700 Message-ID: <3e1162e60904201317v4d50be85x4597a1a6a3123959@mail.gmail.com> From: David Leimbach To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: multipart/alternative; boundary=000e0cd6ac724c0c7d0468023700 Subject: Re: [9fans] Plan9 - the next 20 years Topicbox-Message-UUID: ebe1618a-ead4-11e9-9d60-3106f5b1d025 --000e0cd6ac724c0c7d0468023700 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Mon, Apr 20, 2009 at 12:03 PM, erik quanstrom wrote= : > > > > Tread tag fid offset count=EF=A3=AC > > > > > > > > Rread tag count data > > > > > > without having the benefit of reading ken's thoughts ... > > > > > > you can have 1 fd being read by 2 procs at the same time. > > > the only way to do this is by having multiple outstanding tags. > > > > > > I thought the tag was assigned by the client, not the server (since it > shows > > up as a field in the T message), and that this meant it's possible for > one > > client to put many of it's own locally tagged requests into the server, > and > > wait for them in any order it chooses. > > that's what i thought i said. (from the perspective of pread and pwrite > not (T R)^(read write).) Ah that's what I didn't understand :-). > > > > > i think the complaint about 9p boils down to ordering. > > > if i want to do something like > > > cd /sys/src/9/pc/ ; cat sdata.c > > > that's a bunch of walks and then an open and then a read. > > > these are done serially, and each one takes 1rtt. > > > > > > > Some higher operations probably require an ordering. But there's no > reason > > you could do two different sequences of walks, and a read concurrently = is > > there? > > not that i can think of. but that addresses throughput, but not latency. Right, but with better throughput overall, you can "hide" latency in some applications. That's what HTTP does with this AJAX fun right? Show some of the page, load the rest over time, and people "feel better about stuff". I had an application for SNMP in Erlang that did too much serially, and by increasing the number of outstanding requests, I got the overall job done sooner, despite the latency issues. This improved the user experience by about 10 seconds less wait time. Tagged requests was actually how I implemented it :-) 9p can't fix the latency problems, but applications over 9p can be designed to try to hide some of it, depending on usage. > > > - erik > > --000e0cd6ac724c0c7d0468023700 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

On Mon, Apr 20, 2009 at 12:03 PM, erik q= uanstrom <quans= tro@coraid.com> wrote:
> > > Tread tag fid offset count=EF=A3=AC
> > >
> > > Rread tag count data
> >
> > without having the benefit of reading ken's thoughts ...
> >
> > you can have 1 fd being read by 2 procs at the same time.
> > the only way to do this is by having multiple outstanding tags. >
>
> I thought the tag was assigned by the client, not the server (since it= shows
> up as a field in the T message), and that this meant it's possible= for one
> client to put many of it's own locally tagged requests into the se= rver, and
> wait for them in any order it chooses.

that's what i thought i said. =C2=A0(from the perspective of prea= d and pwrite
not (T R)^(read write).)

Ah that's what= I didn't understand :-). =C2=A0
=C2=A0


> > i think the complaint about 9p boils down to ordering.
> > if i want to do something like
> > =C2=A0 =C2=A0 =C2=A0 =C2=A0cd /sys/src/9/pc/ ; cat sdata.c
> > that's a bunch of walks and then an open and then a read.
> > these are done serially, and each one takes 1rtt.
> >
>
> Some higher operations probably require an ordering. =C2=A0But there&#= 39;s no reason
> you could do two different sequences of walks, and a read concurrently= is
> there?

not that i can think of. =C2=A0but that addresses throughput, but not= latency.

Right, but with better throughput= overall, you can "hide" latency in some applications. =C2=A0That= 's what HTTP does with this AJAX fun right? =C2=A0

Show some of the page, load the rest over time, and peo= ple "feel better about stuff".

I had an = application for SNMP in Erlang that did too much serially, and by increasin= g the number of outstanding requests, I got the overall job done sooner, de= spite the latency issues. =C2=A0This improved the user experience by about = 10 seconds less wait time. =C2=A0Tagged requests was actually how I impleme= nted it :-)

9p can't fix the latency problems, but applications= over 9p can be designed to try to hide some of it, depending on usage.
=C2=A0


- erik


--000e0cd6ac724c0c7d0468023700--