IEEE International Performance, Computing and Communications Conference, Proceedings

Semi-preemptible locks for a distributed file system


Many applications require the ability to obtain exclusive access to data, where an application is granted privileges to an object that cannot be preempted and limits the actions of other processes. Local file systems support exclusive access to files by maintaining information about the access rights of current open file instances, and checking subsequent opens for compatibility. Implementing exclusive access in this manner for distributed file systems degrades performance by requiring every open file to be registered with a server that maintains global open state. We introduce a distributed lock for managing file access, called a semi-preemptible lock, that avoids this performance limitation. Clients locally grant open requests for files that are consistent with a distributed semi-preemptible lock that they hold. File system clients retain or cache distributed locks, even in the absence of open file instances. When a file access lock is already cached, a client services open requests without a server message, improving performance by exploiting locality, the affinity of files to clients.