On Mon, Apr 20, 2009 at 1:33 PM, erik quanstrom <quanstro@coraid.com> wrote:
> > 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.

let's take the path /sys/src/9/pc/sdata.c.  for http, getting
this path takes one request (with the prefix http://$server)
with 9p, this takes a number of walks, an open.  then you
can start with the reads.  only the reads may be done in
parallel.

given network latency worth worring about, the total latency
to read this file will be worse for 9p than for http.

Yeah, I guess due to my lack of having written a 9p client by hand, I've forgotten that a new 9p client session is stateful, and at the root of the hierarchy presented by the server.  No choice but to walk, even if you know the path to the named resource in advance.

This seems to give techniques like REST a bit of an advantage over 9p.  (yikes)

Would we want a less stateful 9p then?  Does that end up being HTTP or IMAP or some other thing that already exists?

Dave


- erik