superfly/litefs

Support subdirectories

Opened this issue · 2 comments

I have an app that will create a separate sqlite database for every user in the system. I'd like to have them organised in a tree structure for better organization but currently, mkdir does not seems to be permitted within the litefs mount

2874de4c016738:/# mount | grep litefs
/dev/vdb on /var/lib/litefs type ext4 (rw,relatime,stripe=64)
litefs on /var/lib/sqlemail type fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
2874de4c016738:/# mkdir /var/lib/sqlemail/users
mkdir: can't create directory '/var/lib/sqlemail/users': Operation not permitted

By the way, congratulation for the great work and thanks to LiteFS I discovered Fly.io which seems to be really awesome.

Thanks for the bug report (and the nice words!) Adding support for subdirectories adds a surprising amount of complexity to LiteFS so I held off on it. I'll mark this as a possible enhancement but also a documentation issue since we should call it out better.

It's easy to workaround this, so I suppose this is not going to be top priority, and if it adds complexity, perhaps it's best to leave it out. It's easy to just prefix our filename instead and if I truly have too many files around, perhaps I should have multiple litefs instances then.