Storage array side write locking
First Claim
1. A method comprising:
- receiving, at one of a plurality of storage arrays, a request to access grains stored in one or more of the plurality of storage arrays from one of a plurality of clients;
determining, by the one of the plurality of storage arrays, from a lock table a lock status of each of the requested grains and an identification of which of the plurality of clients is associated with each of the requested grains with the lock status of locked;
managing, by the one of the plurality of storage arrays, access to each of the requested grains based on the determined lock status and the identification of which of the plurality of clients is associated with each of the requested grains with the lock status of locked;
locking, by the one of the plurality of storage arrays, in the lock table the grains to the client associated with the request when the determining indicates the lock status is unlocked; and
waiting a stored period of time and then repeating the determining and the managing for a stored number of attempts for grains which remain when the determining indicates the lock status is locked.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are described herein that provide storage array side write locking. In embodiments, data is on storage arrays that are shared by a plurality of clients, and the storage array prevents write contentions on the shared data by employing a storage array side write locking strategy that uses a write lock table to determine whether requested data is currently being serviced by one of the plurality of clients. For example, upon receiving a request for data, the storage array checks a lock table to determine whether any of the requested data is currently write locked (which indications current use of the data). If the grains are not write locked, then the data request may be allowed. If the grains are write locked, then the data request may be denied. In embodiments, the storage array takes steps to determine whether write locks have become stale and should be removed.
-
Citations
15 Claims
-
1. A method comprising:
-
receiving, at one of a plurality of storage arrays, a request to access grains stored in one or more of the plurality of storage arrays from one of a plurality of clients; determining, by the one of the plurality of storage arrays, from a lock table a lock status of each of the requested grains and an identification of which of the plurality of clients is associated with each of the requested grains with the lock status of locked; managing, by the one of the plurality of storage arrays, access to each of the requested grains based on the determined lock status and the identification of which of the plurality of clients is associated with each of the requested grains with the lock status of locked; locking, by the one of the plurality of storage arrays, in the lock table the grains to the client associated with the request when the determining indicates the lock status is unlocked; and waiting a stored period of time and then repeating the determining and the managing for a stored number of attempts for grains which remain when the determining indicates the lock status is locked. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A storage array device in a cluster of storage array devices, the storage array device comprising:
-
one or more processors; a memory device coupled to the one or more processors which are configured to be capable of executing programmed instructions comprising and stored in the memory device to; receive a request to access grains stored in one or more of the cluster of storage array devices from one of a plurality of clients; determine from a lock table a lock status of each of the requested grains and an identification of which of the plurality of clients is associated with each of the requested grains with the lock status of locked; manage access to each of the requested grains based on the determined lock status and the identification of which of the plurality of clients is associated with each of the requested grains with the lock status of locked; lock in a lock table the grains to the client associated with the request when the determine indicates the lock status is unlocked; and wait a stored period of time and then repeating the determine the lock status and the manage access for a stored number of attempts for the grains which remain when the determine the lock status indicates the lock status is locked. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A non-transitory, machine readable storage medium having stored thereon instructions for performing a method, comprising machine executable code which when executed by at least one machine, causes the machine to:
-
receive, at one of a plurality of storage arrays, a request to access grains stored in one or more of the plurality of storage arrays from one of a plurality of clients; determine, by the one of the plurality of storage arrays, from a lock table a lock status of each of the requested grains and an identification of which of the plurality of clients is associated with each of the requested grains with the lock status of locked; manage, by the one of the plurality of storage arrays, access to each of the requested grains based on the determined lock status and the identification of which of the plurality of clients is associated with each of the requested grains with the lock status of locked; lock, by the one of the plurality of storage arrays, in the lock table the grains to the client associated with the request when the determining indicates the lock status is unlocked; and wait a stored period of time and then repeating the determining and the managing for a stored number of attempts for grains which remain when the determining indicates the lock status is locked. - View Dependent Claims (12, 13, 14, 15)
-
Specification