On Mon, Apr 20, 2009 at 12:03 PM, erik quanstrom wrote: > > > > Tread tag fid offset count > > > > > > > > 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 > >