[Gluster-devel] Upcalls Infrastructure

Soumya Koduri skoduri at redhat.com
Fri Dec 12 07:17:21 UTC 2014


Hi,

This framework has been designed to maintain state in the glusterfsd 
process, for each the files being accessed (including the clients info 
accessing those files) and send notifications to the respective 
glusterfs clients incase of any change in that state.

Few of the use-cases (currently identified) of this infrastructure are:

* Inode Update/Invalidation
	- clients caching inode entries or attributes of a file (eg., md-cache) 
can make use of this support to update or invalidate those entries based 
on the notifications sent by server of the attributes changed on the 
corresponding files in the back-end.

* Recall Delegations/lease-locks
	- For lease-locks to be supported, the server should be able to 
maintain those locks states and recall them successfully by sending 
notifications to the clients incase of any conflicting access requested 
by another client.

* Maintain Share Reservations/Locks states.
	- Along with lease-lock states (mentioned above), we could extend this 
framework to support Open Share-reservations/Locks

In addition to the above, this framework could be extended to add, 
maintain any other file states and send callback events when required.

Feature page -
http://www.gluster.org/community/documentation/index.php/Features/Upcall-infrastructure

PoC on this feature is done. One of the initial consumers of this 
support is NFS-ganesha (a user-mode file server for NFSv3,4.0,4.1,pNFS 
developed by an active open-source community - 
https://github.com/nfs-ganesha/nfs-ganesha/wiki)

Note: This support will be turned off by default and enabled only if 
required by using a tunable option (currently using Gluster CLI option 
to enable NFS-Ganesha, being developed as part of a different
feature that will get its Feature Page announced soon)

Comments and feedback are welcome.

Thanks,
Soumya


More information about the Gluster-devel mailing list