EFFICIENT FILE MANAGEMENT THROUGH GRANULAR OPPORTUNISTIC LOCKING
First Claim
1. A method for maintaining distributed cache coherency across multiple clients accessing a file or a shared resource, comprising:
- opening a file handle with an oplock key associated to a first client;
granting a first oplock state as specified by a first client request as any combination of caching intentions; and
transitioning from the first oplock state as specified to a second oplock state upon receiving an acknowledgement that the first oplock state is broken.
1 Assignment
0 Petitions
Accused Products
Abstract
Improved methods and systems for granular opportunistic locking mechanisms (oplocks) are provided for increasing file caching efficiency. Oplocks can be specified with a combination of three possible granular caching intentions: read, write, and/or handle. An oplock can be specified with an identifier that indicates a client/specific caller to avoid breaking the original oplock due to an incompatibility from other requests of the same client. An atomic oplock flag is added to create operations that allow callers to request an atomic open with an oplock with a given file.
-
Citations
20 Claims
-
1. A method for maintaining distributed cache coherency across multiple clients accessing a file or a shared resource, comprising:
-
opening a file handle with an oplock key associated to a first client; granting a first oplock state as specified by a first client request as any combination of caching intentions; and transitioning from the first oplock state as specified to a second oplock state upon receiving an acknowledgement that the first oplock state is broken. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A file server comprising:
-
a storage having a file directed for shared usage; an interface to a network; and a processor, the storage operating from control signals of the processor to enforce opportunistic locking semantics for accessing the storage across the network, the opportunistic locking semantics enforced among the plurality of clients, the processor configured to; open a file handle of the file directed for shared usage with an oplock key associating a first client to the file handle; grant a first oplock state as specified by a first client request as any combination of caching intentions; and transition from the first oplock state as specified to a second oplock state upon receiving an acknowledgement that the first oplock state is broken. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for allocating and managing files in a multi-user network environment having at least one server with a file directed for shared usage, comprising:
-
opening a file handle with an oplock key associated to a first client and prevents two or more file handles from the first client from breaking each other'"'"'s oplock state; granting a first oplock state as specified by a first client request as any combination of caching intentions comprising;
read caching, write caching, and/or handle caching; andtransitioning from the first oplock state as specified to a second oplock state upon receiving an acknowledgement that the first oplock state is broken comprising; notifying the first client of the first client request that the first oplock state is broken upon receiving a second client request when the second client request is specified without an oplock key being substantially identical to the oplock key associated to the file handle originally opened; providing an opportunity for the client to flush any unwritten data to the server, re-open any handles which were collapsed on the client, close any cached handles and purge its read cache; transmitting the oplock key to a file system control and storing the oplock key; performing a share check to determine a sharing violation, and upon discovering a sharing violation breaking existing handle oplocks, if any; performing the share check for a second time; and upon discovery of a sharing violation, failing any file open requests. - View Dependent Claims (20)
-
Specification