[RFC] FUSE: Adding a requests resend mechanism to support userspace process' failover

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

FUSE based userspace filesystem process can be killed accidentally. If it happens, the connection to kernel/fuse will be destroyed ending up with a residual mountpoint. All following requests will be rejected.

If userspace is capable to hold the *fd* returned by opening `/dev/fuse` and it's somewhat stateless or the internal state can be recovered somehow, even the process dies, we can still keep the fuse connection. It gives us an opportunity to do failover.

The philosophy doing this is simple, just a control file(perhaps named as "resend" to `/sys/fs/fuse/connections/<id>/resend`). By writing arbitrary string into this file, fuse will move all the requests waiting for answers from Processing queue back to the Pending queue and resend those requests to userspace.

After this, the recovered userspace process can continue processing those requests, which is transparent to end-users.

Any thoughts about this idea?
I can send a RFC patch if necessary to make this discussion progress. :-)

Thanks,
Changwei



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux