Hi all,
I really like FUSE and have I've written my first FUSE filesystem called
s3backer <
http://code.google.com/p/s3backer/>. All this filesystem does is
contain a single normal file which is backed by a network remote data store
(Amazon S3). The file is divided up into blocks (typically will be same size
as kernel page size) and then you do a loopback mount of a normal filesystem
on top of this file.
As the "upper" filesystem reads and writes blocks, the "lower" s3backer
filesystem reads and writes over the network. I'm sure you've seen a similar
arrangement before in other FUSE filesystems. The result is that you treat
the single file in the FUSE filesystem more like a hard disk type block
device, where the "hard disk" storage is remotely located over the network.
My questions all relate to kernel caching of the file data in this scenario.
I'm mostly ignorant about how exactly Linux kernel caching works. And this
is a complicated scenario because it involves two filesystems (the "upper"
one and the "lower" one) and a loopback mount...
How do the kernel page cache, and the data blocks read from/written to the
FUSE filesystem (on behalf of the "upper" filesystem) interact?
How does the kernel handle caching of the underlying file data blocks when
doing a loopback mount? Does the fact that the underlying file is within a
FUSE filesystem matter at all?
If i create a bunch of swap space, will the kernel take advantage of it and
therefore do more caching of the FUSE file's data blocks?
Or will the kernel refuse to cache file data blocks in swap because it
treats the FUSE file like a hard disk because another filesystem is
loopback-mounted on top of it?
Please see this discussion on the
wiki<
http://code.google.com/p/s3backer/wiki/ManPage>for more info on
some of the questions raised.
Thanks,
-Archie
P.S. Apologies if this topic has already been addressed, the sourceforge
mailing list search seems broken.
--
Archie L. Cobbs
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/_______________________________________________
fuse-devel mailing list
fuse-devel@...
https://lists.sourceforge.net/lists/listinfo/fuse-devel