DragonFly kernel List (threaded) for 2006-05
Re: The Clustering and Userland VFS transport protocol - summary
On 5/11/06, Jason Smethers <jason@xxxxxxxxxxxx> wrote:
Matthew Dillon wrote:
> In a clustered environment the execution context (what 'cp' is actually
> running on) can be anywhere. But there is absolutely no reason for the
> file data to physically pass through that machine if 'cp' itself does
> not need to know what the file contains. If done properly, the actual
> file data would be transported directly from machine A to machine B,
> or stay strictly within machine A in the second example.
Are such operations going to be exposed through system calls? In other
words, does this mean that userland utilities will need to be modified
to fully support (efficiently) this type of copy by reference?
cp can probably get away with using sendfile() for files anyway (not
so for more complex copies), but I don't know if DragonFly's does. At
any rate this kind of "control kernel IO via userland" thing is not
new, but using it in this way for clustering seems to be.
Even so, most code bases these days seem very happy to support
specific performance improvements on some systems as long as they can
fit it in a more compatible (i.e. POSIX or ANSI C) way of doing things
via some preprocessor work. For instance, people don't seem to object
to Linux adding system calls (vmsplice, etc.) which can offer some
minor performance gains with their own tragic penalties (i.e. having
to allocate and track N buffers where N is something awful). Compared
to that, an addition which offers much more economical behavior with
no penalty is a great bonus. And if it can be made as part of
sendfile(), that much better.
-- Dmitri Nikulin