litefs icon indicating copy to clipboard operation
litefs copied to clipboard

VFS

Open benbjohnson opened this issue 3 years ago • 6 comments

LiteFS should work as a SQLite VFS so that non-Linux users and users who don't like FUSE can also run it.

benbjohnson avatar Nov 09 '22 22:11 benbjohnson

I would really love for this to work with Deno. Is a vfs pretty much going to have to be rust?

mrkurt avatar Nov 10 '22 04:11 mrkurt

That's a good point, the performance overhead calling Go to C is high, and C to Go is incredibly high.

anacrolix avatar Nov 10 '22 05:11 anacrolix

I would really love for this to work with Deno. Is a vfs pretty much going to have to be rust?

@mrkurt I was thinking that the WASM version would have more limited functionality since a lot of those runtimes don't have a persistent disk so they'll probably just act as a thin client to a separate storage service. If that's the case, then we're stripping out a lot so I'm actually leaning towards making that client in TypeScript instead of Rust.

The VFS I'm thinking of for this issue would just be a rebundling of the Go code without FUSE and targeted at a single database connection.

benbjohnson avatar Nov 10 '22 14:11 benbjohnson

I'm not sure if this will be helpful here, but rqlite implemented some vfs stuff in this PR, which was based on some VFS nuances explained in a different thread that is linked in that PR.

nickchomey avatar Mar 13 '23 09:03 nickchomey

Perhaps this goes too far into the weeds, but this is an interesting paper that deeply explores FUSE performance as well as some optimizations. It sounds like it can have minimal or enormous performance lag depending on the application - sounds like the latter has been observed in litefs and that a vfs implementation would be worthwhile.

https://dl.acm.org/doi/fullHtml/10.1145/3310148

nickchomey avatar Mar 13 '23 09:03 nickchomey

What's the current status of VFS support?

burggraf avatar Dec 23 '23 16:12 burggraf