-
Notifications
You must be signed in to change notification settings - Fork 70
Description
(adapted from internal issue by @jleahy-xtx )
Most use-cases are covered by kmod/FUSE/S3, but we won't be able to cover everyone until we have NFS. Luckily NFS is not actually that difficult to implement (and I have a skeleton already) and has very flexible semantics. Many things (for example file locking) can be left out without really violating its expectations.
The main difficult is around files being immutable. To begin with I suggest we tackle this by staging partially written files to local disk on the NFS server and then only when they are closed moving them to TernFS. It probably makes sense to use the NFS server to actually replicate behaviour that's closer to normal POSIX semantics, e.g. if one client has a partially written files then other clients may also be able to see this in-progress file (and maybe even can concurrently modify it).
This would have to be a single server to begin with, otherwise the semantics would not work properly, but that should be sufficient for our needs.