Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate using FUSE #10742

Open
Ericson2314 opened this issue May 20, 2024 · 1 comment
Open

Investigate using FUSE #10742

Ericson2314 opened this issue May 20, 2024 · 1 comment
Labels
store Issues and pull requests concerning the Nix store

Comments

@Ericson2314
Copy link
Member

Ericson2314 commented May 20, 2024

A lot of complexity in the LocalStore implementation has to do with the fact that the file system and database are two sources of truth, and the file system doesn't directly track what Nix cares about, but rather has to be mutated to reflect the ramifications of that actual state of the store. (Not sure how better to phrase this -- the idea is that the file system state is one step removed from the source of truth.)

FUSE has the potential to allow us to change our architecture quite dramatically: because all filesystem operations would go through Nix, instead of worrying about the "other state" or "other access patterns" not directly in our control, we would control everything.

Historically, FUSE has been unreasonably slow to be used for much more than toys, but recently that is starting to change with "FUSE passthrough (see e.g. https://www.phoronix.com/news/Linux-6.9-FUSE-Passthrough, https://lwn.net/Articles/932060/). This allows userspace to make "control plane" decision while most "data plane" action still happens within the kernel with much higher performance. This, and perhaps further work (the FUSE passthrough author once told me on the mailing list not to get too excited :)), should make a FUSE rearchitecture much more viable an option.

@roberth roberth added the store Issues and pull requests concerning the Nix store label May 20, 2024
@abathur
Copy link
Member

abathur commented May 21, 2024

Tangentially related? https://github.com/dnr/styx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
store Issues and pull requests concerning the Nix store
Projects
None yet
Development

No branches or pull requests

3 participants