How does it compare to other players in the area? E.g Ceph, Gluster or Seaweed? (I'm no expert myself, only used those as a consumer of already setup systems)<p>EDIT: There is a whole comparison section in the docs that I missed: <a href="https://juicefs.com/docs/community/comparison/juicefs_vs_cephfs/" rel="nofollow">https://juicefs.com/docs/community/comparison/juicefs_vs_cep...</a>
>JuiceFS has introduced S3 gateway since v0.11. The feature is implemented based on the MinIO S3 Gateway.<p>The MinIO S3 Gateway was deprecated: <a href="https://blog.min.io/deprecation-of-the-minio-gateway/" rel="nofollow">https://blog.min.io/deprecation-of-the-minio-gateway/</a><p>I don't know if JuiceFS is treating it like a fork that they are maintaining, or if they have other plans.
Adopted SeaweedFS few months back. Never looked back since then. It's fast even on HDD disks.<p><a href="https://github.com/seaweedfs/seaweedfs#introduction">https://github.com/seaweedfs/seaweedfs#introduction</a>
Do you know if strong read-after-write consistency is supported (as in s3)?
Is an atomic put-if-absent method supported in JuiceFS (as in Azure blob storage)?
If so, this could be a really cool platform for formats like Delta.io :)
Regarding the topic of "cloud storage" - could someone tell me if Juice or maybe MinIO would be a good solution to:
1. Storing multimedia data (image/video) uploaded by an user - here I would guess it can either hit it directly or via the backend for auth
2. Should be accessible by an URL exposed outside of the docker-compose so it doesn't need to go through the backend REST API
3. Some form of authentication based on the JWT token in the Header - or maybe as this is a MVP simply generating a long enough random string will be enough<p>Or should I simply use nginx + filesystem and not overcomplicate?<p>I hear everywhere S3 but as it's a pet project don't want to go the AWS route, instead maybe a Hetzner VPS with docker-compose to run the whole setup with an external Postgres instance.
Is it 'Posix Compatible' or 'Posix' aka 'Posix compliant'?<p>It's incredibly hard to make a distributed posix compatible filesystem since you run into CAP. I believe (but am not certain) you are caching locally in violation of Posix or you are signing up for arbitrarily long stalls and a ton of latency on every read/write. (I'm not certain because I'm not sure what Posix specifies wrt stale reads and other cache consistency requirements between sync's)<p>It would be interesting to hear what the tradeoffs are here, but assuming they are explicit and can be designed around this seems very useful.
I was actually building something similar to Juice using S3 as an object store and optionally using redis(fast) or s3(slow) for metadata storage. Basically a log structured filesystem using rolling hash chunk encoding and delegations. I kinda stopped when I found juice (and to some extent seaweed) as they were much further along. If you need shared storage and don't have crazy performance requirements it makes a lot of sense to separate out metadata and just throw blobs into object storage.
I tried to take a look into the documentation but it seems to all be in Chinese?<p>Edit: For some reason my phone defaulted to Chinese but on my laptop it's fine. User error I guess!
Does JuiceFS scale horizontally? I can’t see anything about how the servers federate/balance load or if they can at all.<p>[EDIT] looks like there's an issue -- <a href="https://github.com/juicedata/juicefs/issues/345">https://github.com/juicedata/juicefs/issues/345</a><p>But this still doesn't really answer it -- if I run JuiceFS S3 Gateway in 2 places, is there any way to redirect reads?
Can it do full encryption from client (transfer + at-rest) with Fuse?<p>Currently I use ext4 image + LUKS + NBD over SSH tunel, it works but is extremely slow.
Is this basically a non-POSIX* FUSE for S3 and/or Redis?<p>* POSIX implies a whole lot of guarantees, like atomic file renames/moves, that definitely don't seem to be included here.