On Sun, Nov 14, 2010 at 7:25 PM, Sam Watkins wrote: > hi, > > I am wondering what you think about the capabilities of 9p compared to > http/1.1. Perhaps this seems like an odd comparison, but I think 9p and > http > are broadly similar in purpose and functionality. While writing a simple > webserver, I got to thinking that http is really a very capable protocol. > > http is text-based, it supports pipelining and arbitraty metadata. As far > as I > know, 9p does not support pipelining nor arbitraty metadata. It seems to > me > that these are big advantages for http. 9p supports walking; are there > other > things 9p can do which http cannot, which give 9p a significant advantage? > > Am I correct, that 9p does not support pipelining? I suppose this would be > a > big problem. For example, with http pipelining one may ask a server to > HEAD > (like stat) 10,000 files together, without having to wait for the > responses. > Over a high latency link (e.g. Australia -> USA), this might save perhaps > an > hour of waiting. > Under certain situations, 9p can do some forms of pipelining. The tagged requests don't have to be waited on in order, for the next outgoing request to be sent, unless there's a dependency of one completing before the other, or the evaluation of completion of a previous one on another. > > Such an asyncronous interface might be useful even when accessing local > disks - > if the filesystem receives 100 open/read/stat requests bundled together, it > might optimise disk access to minimise seeking, as is commonly done for > writes. > > By the way, I read the other day on this list that there is no need to > improve > cat(1). Well for me, I still feel that the command `cat` without args > should > concatenate 0 files (producing no output), not copy stdin to stdout! > That's an interesting point of view. I think the concept of "standard input" is that if no input is given, it was going to be the fallback. Same goes for standard output. With that said, I think cat is behaving just fine to take no arguments and then default to the standard input and output :-). > > > Sam > > >