[EMAIL PROTECTED] wrote on Tue, 12 Jun 2007 19:20 -0400:
> If there is any interest in running non-linux clients on PVFS, we
> have a preliminary release of pvfs2fuse which is a FUSE
> implementation of a PVFS filesystem. It allows any OS that supports
> FUSE to mount a PVFS filesystem. Presently, this includes Linux,
> FreeBSD, and MacOSX.
>
> The code is a set of patches to pvfs-2.6.3 and is available at http://
> snsl.engr.uconn.edu/downloads/pvfs2fuse.html.
>
> I've done limited testing on Linux 2.6.9 and MacOSX 10.4.9 but it
> should work on other versions and FreeBSD as well.
>
> After doing some testing with a 6-node Linux cluster, pvfs2fuse on
> Linux performance is comparable to the PVFS built-in client. Iozone
> shows the PVFS client topping out at ~100 MB/s and pvfs2fuse topping
> out at ~75 MBs for large files but for small files and small record
> sizes pvfs2fuse does about 30% better. We have yet to do any
> analysis of pvfs2fuse performance to see where the bottlenecks are.
This is awesome work. Fascinating that it takes only 1200 lines to
do a FUSE-based implementation compared to the 15k lines in the
current kernel module.
I would especially encourage a performance comparison. Looking at
latency, small- and large-block throughputs, etc. would be good work
for a conference submission if you are interested in such things.
Is it true, for instance, that FUSE generates only page-sized reads
or writes? How does that impact performance? Are context switches
more or less of a problem with the FUSE version (compared to stock
pvfs kernel module)?
FUSE is a purely synchronous implementation, apparently. What
happens if two processes (e.g., ls foo & ls bar)
Some comments on the patch.
Your configure has more changes in it than are reflected in the
configure.in. We want the stuff in configure for this patch; not
sure why it is not in configure.in.
The *-apple-* patch to configure.in should come in a different patch
if it is a useful thing. Ditto with the -L spacing changes in
Makefile.in. And the #if __APPLE__ multiple places elsewhere. And
PINT_FSTAB_TYPE fix. Maybe you could break this up into "apple
fixes" and "fuse patch"?
Any chance you could fix some of the 10 FIXMEs in pvfs2fuse.c? Are
they important?
There is an errant usleep() in some getattr code. Assuming that can
be safely removed. :)
I don't understand how readdir works:
incount = 32
do {
PVFS_sys_readdir(&outcount)
put returned responses into fuse response
} while (outcount == incount)
What happens for a directory that has 31 or 33 files?
I can never keep track of the style in pvfs. But I think for ifs
and fors you want:
if ((x && foo) || (x && bar))
{
noting the spaces around the various parens, and after the keyword.
Does sendfile work? :)
-- Pete
_______________________________________________
Pvfs2-users mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-users