Edit: Support for concurrent mounts seems to be the main difference https://bitbucket.org/nikratio/s3ql/wiki/FAQ#!can-i-access-a...
One drawback to this design would be that many small files in the filesystem would translate to many small objects in S3 (with associated operations). One solution would be to put small objects right into the metadata log. Alternately they (or maybe all objects) could be put into a log-structured merge tree.
Another problem with this design is that S3 doesn't support append operations so sync latency would be bounded by client log flush intervals, again creating lots of small objects. Maybe the coordination service routes some of the data to manage this?
Anyway, really interesting design problem. Is this close?
We do write bundling before sending data to S3 so lots of small files would be packed together and stored in a single S3 object. This also helps reduce the number of object store operations.
You are absolutely right that frequent sync will necessarily create many small objects, which is why small objects will be combined into bigger ones (this compaction is done in the background). Sync latency is of course bounded by the S3 PUT time, since fsync(2) can only return after your data has been safely stored in S3.
It is a really interesting design problem. Thanks for sharing your ideas.
It might just be a release timing thing, but what's the advantage of this over Amazon Elastic File System ? I see you've got a tagline on your signup No need to wait for EFS, are you planning a feature comparison or similar?
edit: derp. Turns out I should have read further!
How is ObjectiveFS different from Amazon EFS?
ObjectiveFS uses highly durable object stores (Amazon S3 and Google Cloud Storage) to store your files. Your data is accessible from all regions, your office and your laptops. Performance scales with your object store.
ObjectiveFS supports Linux and OS X and is running in production today.
Amazon EFS is NFS-based, with access to each file system limited to EC2 instances in the same region. It is not available today and will only be in limited preview for some customers in summer 2015. It will cost $0.30/GB and performance will scale with the number of GB stored.
1. We have strong end-to-end integrity checks and encryption on by default.
2. Amazon EFS's performance is dependent on the filesystem size: larger filesystems include more iops.
We love to hear your feedback. Feel free to try it out. We will also be here to answer questions.
Mounting S3 lets you view the objects in a bucket, but it doesn't behave like a regular file system.
"large subset of POSIX including reading/writing files, directories, symlinks, mode, uid/gid, and extended attributes"
Our implementation has these features and works with linux programs.
sounds like maybe they're just packaging s3fs-fuse and then charging for it "as a service"? they're extremely light on technical details.
ObjectiveFS is a log structured filesystem that we implemented completely from scratch. It is a POSIX filesystem and works with the existing Linux and OS X tools and software.
UPDATE: the website should be faster now.