suganoo / s3fs

Automatically exported from code.google.com/p/s3fs
0 stars 0 forks source link

Wish: lowlevel version of your fs. #131

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
This is not really an issue, more a wish.

Your fs is using the high level interface. Isn't there a lowlevel version??

I'm very interested.

Stef Bon

Original issue reported on code.google.com by Stef...@gmail.com on 3 Dec 2010 at 5:44

GoogleCodeExporter commented 8 years ago
Can you be more specific what you mean by this?

Original comment by apetresc on 3 Dec 2010 at 6:21

GoogleCodeExporter commented 8 years ago
Well to program a fs using FUSE there are two ways (interfaces) to do this.
There is the highlevel interface, which uses the path as argument. A lot of 
administration (inodes, entries) is done "behind" the scenes by the fuse 
library.
And there is the lowlevel interface, which uses the inode as argument. Here 
your fs has to do the inode and entry administration itself. Look at the fuse 
include file
fuse_lowlevel.h in the include dir and hello_ll.c in the example dir of the 
source of FUSE.

Stef Bon
Voorburg
the Netherlands

Original comment by Stef...@gmail.com on 3 Dec 2010 at 6:44

GoogleCodeExporter commented 8 years ago
I see; out of curiosity, what benefits do you see for s3fs using such a 
low-level interface? Given the nature of s3fs, I can't really think of anything 
clever we would be able to do above the normal things FUSE does for us. Did you 
have a particular user-facing feature in mind?

Thanks for your time!

Original comment by apetresc on 3 Dec 2010 at 6:46

GoogleCodeExporter commented 8 years ago
Well first there is my own interest. I'm building fuse-workspace-ll, which is 
an important part of a construction to offer a "GoboLinux" like environment, 
which I think is great. Look at:

http://linux.bononline.nl/wiki/index.php/Changes_and_issues

This construction offers the user an environment with only the following 
directories:

Computer (for hardware)
Network (local network services like SMB shares)
Personal (personal stuff like documents, download, etc)
System (the original system mounted here)

The standard directories like /etc, /bin and /lib are hidden through a trick in 
fuse-workspace-ll.

I want to extend my fs with Goofs and other Internet services like S3, using 
them like a sort of plugins for my "base" fs.

Then I can add another group like:

Internet Services/Goofs ... 
                  S3 ...

So this is because it's easier for me to make my fs use s3fs as plugin. 
Otherwise I will have to write it myself.

Another "real" benefit you can get from the lowlevel fs is that it's easier to 
write aio read and write (and other calls), using a single thread modes and 
epoll in the mainloop. This will improve the responsiveness of your fs. It will 
not block other calls while busy doing one.

Stef

Original comment by Stef...@gmail.com on 3 Dec 2010 at 7:05

GoogleCodeExporter commented 8 years ago

Original comment by dmoore4...@gmail.com on 19 Dec 2010 at 1:19

GoogleCodeExporter commented 8 years ago
Stef,  I'm not sure how we can act upon your request. Low level to me means 
kind of what we are all ready doing: using the S3, curl and fuse API's

s3fs is whole file based. If you meaning a block-level interface, then you 
might want to check out s3backer

Original comment by dmoore4...@gmail.com on 5 Feb 2011 at 1:57

GoogleCodeExporter commented 8 years ago

Original comment by dmoore4...@gmail.com on 26 Feb 2011 at 2:54