9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "Francisco J Ballesteros" <nemo@lsub.org>
To: "Fans of the OS Plan 9 from Bell Labs" <9fans@cse.psu.edu>
Subject: Re: [9fans] The Web9 Project
Date: Sun,  9 Sep 2007 14:52:13 +0200	[thread overview]
Message-ID: <8ccc8ba40709090552icfe0c22xfeebd72bf178672c@mail.gmail.com> (raw)
In-Reply-To: <fbc8e61f6c5d9bd4c6309bd7a88b41b6@quanstro.net>

>
> the way i read the protocol, 9p does support readahead.  Tread
> takes tag, fid, offset, count.  i can have up to 64k tags, so i think
> this means i can have up to 64k outstanding reads.  what am i missing?
>
> why do we need to bundle requests?  that seems like the wrong level.
> in effect, that is creating an execution environment on the fs.

Latency. I want all requests on two different fids(!) for the same file
issued within a tiny window to coallesce on just one rpc. Yes, breaks coherency
a little bit but AFAIK there's no other way.

An example. If you stat a directory, it would take the same time to read all its
contents within the same rpc. if you later stat a file in the
directory, you could be done
just with what you got. Things get a lot worse for latency if you stat
the top-level dir in
this example before you read it.

Because caching issues, and rpc bundling, seemed to mix just to
achieve a particular
interaction pattern, it seemed more clear just to use a protocol using
that pattern than
forcing 9p into that.

You need a program in the server side anyway, because the client would
not know what
it is retrieving before retrieving it for the first time. Thus, if you
want to get an entire dir at a
time, you'd have to stat (9p) and once you know it's a dir you could
read it all ahead. By this
time, the client had stall waiting for the dir. On the other hand, if
the "protocol" specifies that
a "get" of a dir sends it all to the client, things stay simple and a
single rpc suffices.


> if latency is that bad and readahead won't work because the files
> are too small, why not treat the remote storage as a block device
> and run the fs locally?  the "fs" could be a simple flat file.

Because we wanted the protocol to work for things like o/mero, which
is not a real
fs at all. not to talk about other synthetic file servers.


In any case, I'd like to get this thing screened by others. It might
be a more simple way
that happens work and we'd like to learn which one. I'd be more than
happy to throw this
all away and implement a replacement provided it simplifies things.


      reply	other threads:[~2007-09-09 12:52 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <EE662DC3-5A6C-45BB-8623-A569338F4C46@kix.in>
2007-09-08 12:39 ` Enrico Weigelt
2007-09-08 19:38   ` Anant Narayanan
2007-09-08 15:45 ` Skip Tavakkolian
2007-09-08 19:46   ` Anant Narayanan
2007-09-08 20:15     ` Uriel
2007-09-09  3:46       ` Latchesar Ionkov
2007-09-09  9:44         ` Francisco J Ballesteros
2007-09-09 11:55         ` erik quanstrom
2007-09-09 12:03           ` Francisco J Ballesteros
2007-09-09 12:18             ` erik quanstrom
2007-09-09 12:52               ` Francisco J Ballesteros [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8ccc8ba40709090552icfe0c22xfeebd72bf178672c@mail.gmail.com \
    --to=nemo@lsub.org \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).