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 semipreemptible 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.

[1]  Mahadev Satyanarayanan,et al.  Disconnected Operation in the Coda File System , 1999, Mobidata.

[2]  Sailesh Chutani,et al.  DEcorum File System Architectural Overview , 1990, USENIX Summer.

[3]  Assar Westerlund,et al.  The design of a multicast-based distributed file system , 1999, OSDI '99.

[4]  David R. Cheriton,et al.  Leases: an efficient fault-tolerant mechanism for distributed file cache consistency , 1989, SOSP '89.

[5]  Garret Swart,et al.  A coherent distributed file cache with directory write-behind , 1994, TOCS.

[6]  Paul J. Leach,et al.  A Common Internet File System (CIFS/1.0) Protocol , 1998 .

[7]  Alan F. Benner Fibre Channel: Gigabit Communications and I/O for Computer Networks , 1995 .

[8]  K OusterhoutJohn,et al.  Caching in the Sprite network file system , 1988 .

[9]  Michael L. Kazar,et al.  Synchronization and Caching Issues in the Andrew File System , 1988, USENIX Winter.

[10]  Andreas Reuter,et al.  Transaction Processing: Concepts and Techniques , 1992 .

[11]  Hugh Garraway Parallel Computer Architecture: A Hardware/Software Approach , 1999, IEEE Concurrency.

[12]  Bruce Walker,et al.  The LOCUS distributed operating system , 1983, SOSP '83.

[13]  Howard Frazier,et al.  Gigabit Ethernet: From 100 to 1000 Mbps , 1999, IEEE Internet Comput..

[14]  Grant Erickson,et al.  A 64-bit, shared disk file system for Linux , 1999, 16th IEEE Symposium on Mass Storage Systems in cooperation with the 7th NASA Goddard Conference on Mass Storage Systems and Technologies (Cat. No.99CB37098).

[15]  Roger M. Needham,et al.  A Universal File Server , 1980, IEEE Transactions on Software Engineering.

[16]  Mary Baker,et al.  Measurements of a distributed file system , 1991, SOSP '91.

[17]  Murthy V. Devarakonda,et al.  Recovery in the Calypso file system , 1996, TOCS.

[18]  Jim Zelenka,et al.  Filesystems for Network-Attached Secure Disks (CMU-CS-97-118) , 1997 .

[19]  Michael N. Nelson,et al.  Caching in the Sprite network file system , 1988, TOCS.

[20]  Chandramohan A. Thekkath,et al.  Frangipani: a scalable distributed file system , 1997, SOSP.

[21]  Jeanna Neefe Matthews,et al.  Serverless network file systems , 1996, TOCS.

[22]  J. Howard Et El,et al.  Scale and performance in a distributed file system , 1988 .

[23]  Mahadev Satyanarayanan,et al.  Coda: A Highly Available File System for a Distributed Workstation Environment , 1990, IEEE Trans. Computers.

[24]  Jim Zelenka,et al.  File server scaling with network-attached secure disks , 1997, SIGMETRICS '97.

[25]  Andy Barnhart,et al.  The common Internet file system , 1997 .