Using whole-file and dual-mode locks to reduce locking traffic in data storage systems
First Claim
1. A method of updating data contained in a file object stored in an object-based distributed data storage system comprising:
- receiving a first request from a first requester in said data storage system for updating a first portion of said data in said file object;
upon receipt of said first request, determining whether a first write lock has been granted to a second requester in said data storage system to update any portion of said data in said file object; and
in the absence of said first write lock, granting a second write lock to said first requester, wherein said second write lock is valid over entirety of said file object, thereby allowing said first requestor to update said first portion and any other portion of said data in said file object.
8 Assignments
0 Petitions
Accused Products
Abstract
A methodology wherein two different types of locks are used by a storage manager when multiple clients wish to access a particular redundantly-stored file. Simple byte-range based mutual exclusion (or mutex) locks are granted by the storage manager for data writes/updates to the file when the file is in the fault-free state, and individual readers/writers (R/W) locks are granted by the storage manager when the file is in the degraded state. No read locks are required of clients when the file object is in the fault-free state. During the fault-free state of the file object, when exactly one client is writing to the file object, the storage manger grants that file object a whole-file lock valid over the entire file object. Each client may have a client lock manager that interacts with appropriate storage manager lock manager to request and obtain necessary locks. These various locking mechanisms reduce lock-related network traffic in a data storage system.
-
Citations
24 Claims
-
1. A method of updating data contained in a file object stored in an object-based distributed data storage system comprising:
-
receiving a first request from a first requester in said data storage system for updating a first portion of said data in said file object;
upon receipt of said first request, determining whether a first write lock has been granted to a second requester in said data storage system to update any portion of said data in said file object; and
in the absence of said first write lock, granting a second write lock to said first requester, wherein said second write lock is valid over entirety of said file object, thereby allowing said first requestor to update said first portion and any other portion of said data in said file object. - View Dependent Claims (2, 3)
-
-
4. A method of updating redundant data contained in a file object stored in an object-based distributed data storage system comprising:
-
receiving a first request from a first requester in said data storage system for updating said redundant data in said file object;
upon receipt of said first request, determining whether a first write capability has been granted to a second requester in said data storage system to update said redundant data in said file object; and
in the absence of said first write capability, granting a second write capability exclusively to said first requestor sending said first request, thereby allowing said first requester to update any portion of said file object containing said redundant data until a second request is received from said second requestor for updating said redundant data. - View Dependent Claims (5, 6)
-
-
7. A computer-readable storage medium containing a program code, which, upon execution by a processor in an object-based distributed data storage system, causes said processor to perform the following:
-
receive a request from a first requester in said data storage system for updating a portion of data in a file object stored in said data storage system;
upon receipt of said request, determine whether a first write lock has been granted to a second requestor in said data storage system to update any portion of said data in said file object; and
in the absence of said first write lock, grant a second write lock to said first requestor, wherein said second write lock is valid over entirety of said file object, thereby allowing said first requester to update any portion of said data in said file object.
-
-
8. An object-based data storage system comprising:
-
means for receiving a request from a first requestor in said data storage system for updating a portion of data in a file object stored in said data storage system;
upon receipt of said request, means for determining whether a first write lock has been granted to a second requester in said data storage system to update any portion of said data in said file object; and
in the absence of said first write lock, means for granting a second write lock to said first requester, wherein said second write lock is valid over entirety of said file object, thereby allowing said first requestor to update any portion of said data in said file object.
-
-
9. An object-based data storage system comprising:
a first client computer including;
a first client application program (CAP) configured to send a first request for a byte-range based first write lock corresponding to a first write operation to be performed by said first CAP on a first portion of data stored at a first byte-range in a file object stored in said data storage system; and
a first client lock manager (CLM) configured to receive said first request from said first CAP and, in response, generate and send a second request for said byte-range based first write lock to a server computer in said data storage system. - View Dependent Claims (10, 11, 12, 13, 14)
-
15. A method of accessing data contained in a file object that is at least partially stored in an object-based secure disk (OBD) in an object-based distributed data storage system, said method comprising:
-
allowing one or more executable applications operating in said data storage system to access said data using a corresponding mutual-exclusion (mutex) lock only when each said executable application is performing a write operation on said data in said file object and so long as said file object is in a fault-free state, wherein each said mutex lock allows a corresponding executable application to access said file object simultaneously with one or more other executable applications; and
further allowing each said executable application to perform a read operation on said data without using a corresponding read lock therefor so long as said file object is in said fault-free state. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. A method of accessing redundant data contained in a file object in an object-based distributed data storage system, said method comprising:
-
allowing each executable application operating in said data storage system to access said redundant data using a corresponding first lock only when said executable application is performing a write operation on said redundant data in said file object and so long as said file object is in a fault-free state, wherein each said first lock allows a corresponding executable application to access said file object simultaneously with one or more other executable applications; and
requiring each said executable application to acquire a corresponding second lock or third lock over a corresponding byte range in said file object when performing a respective read or write operation on said redundant data in said file object so long as said file object is in a degraded state.
-
-
23. An object-based data storage system comprising:
-
means for allowing one or more executable applications operating in said data storage system to access data contained in a file object stored in said data storage system using a corresponding mutual-exclusion (mutex) lock only when each said executable application is performing a write operation on said data in said file object and so long as said file object is in a fault-free state, wherein each said mutex lock allows a corresponding executable application to access said file object simultaneously with one or more other executable applications;
means for allowing each said executable application to perform a read operation on said data without using a corresponding read lock therefor so long as said file object is in said fault-free state; and
means for requiring each said executable application to acquire a corresponding read lock or write lock over a corresponding byte range of said data in said file object when performing a respective read or write operation on said data in said file object so long as said file object is in a degraded state.
-
-
24. A method of accessing a file object stored in an object-based data storage system, said method comprising:
-
determining whether said file object is in a fault-free state or a degraded state;
performing the following if said file object is in said fault-free state;
granting a client computer a whole-file lock valid over entirety of said file object when said client computer is the only client computer in said data storage system writing to said file object, granting a byte-range based mutual-exclusion lock to each client computer wishing to write to said file object in said data storage system when more than one client computer wishes to write to said file object, and allowing each client computer in said data storage system to read said file object without requiring a corresponding read lock therefor; and
performing the following if said file object is in said degraded state;
requiring each client computer in said data storage system to obtain a corresponding byte-range based read lock or write lock on said file object for a respective data read or data write operation on said file object, and granting each client computer said corresponding byte-range based read or write lock on said file object.
-
Specification