I expect that most folks looking at this are doing it because it means:
1. Effectively unbounded storage
2. It's fast
3. It's pretty darn cheap
4. You can scale it horizontally in a way that's challenging to scale other filesystems
5. All the components are pretty easy to set up. Many folks are probably already running S3 and Redis.
Filesystems are pretty much by definition durable.
> Filesystems are pretty much by definition durable.
Where do you think Redis persists its data to
> Where do you think Redis persists its data to
This is sort of the point, Redis isn't for persistence. I mean it can, you can use the WAL, it's handy for not having to recompute when you relaunch Redis etc, but Redis is fundamentally an in-memory system and should be treated as such. It is designed for use-cases that necessitate in-memory performance, and that don't require durability.
Easy to scale on RDS, along with everything else. But there’s no Kubernetes operator. Is there a better measure of “easy” or “challenging?” IMO no. Perhaps I am spoiled by CNPG.
For a single node, if you tank performance by changing the configuration, sure. Otherwise, no, not really.
I don't get why you'd want a file system that isn't durable, but to each their own.
There's no vacuuming, there's no need for indexing. You can see the time complexity of most operations. Key-value operations are mostly O(1). You'll never get that kind of performance with other databases because they intentionally don't give you that granularity.
The metadata of the filesystem isn't the performance bottleneck in most cases.
But that's not what gets benchmarked against.
> You'll never get that kind of performance with other databases because they intentionally don't give you that granularity.
Okay but you also won't get horizontal scaling while maintaining consistency in Redis.
> The metadata of the filesystem isn't the performance bottleneck in most cases.
Okay, but they do show that other metadata stores are 2-4x slower than Redis, so it would be great to see whole-system benchmarks that use those.
This approach isn't right for every use case and juice might be a better fit for this sort of 'direct block store', but wanted to include it here for folks that might want something like Juice but without having to maintain a metadata store.
(Disclosure: I work at Storj that develops Object Mount)
Does Object Mount support file locks (flock specifically) and FreeBSD? I see some mention of FreeBSD but I can't find anything on locking.
For context, we are working with a large number of small (<10KB if not <4KB) files normally.
> The magic is: JuiceFS also supports using PostgreSQL as both metadata and object data storage backend! This means you only need to change JuiceFS’s backend to an existing PostgreSQL instance to get a database-based “filesystem.”
Sounds ideal for your kind of situation where a filesystem is being abused as a database :-)
Unfortunately, the benchmarks use Redis. Why would I care about distributed storage on a system like S3, which is all about consistency/durability/availability guarantees, just to put my metadata into Redis?
It would be nice to see benchmarks with another metadata store.