Methods and apparatus facilitating access to shared storage among multiple computers
First Claim
1. A computer-implemented method for providing a plurality of processes concurrent access to shared storage, the method comprising:
- at each of multiple computers having access to the shared storage, maintaining a unified address space that maps locations of the shared storage to corresponding data access information, the corresponding data access information indicating access rights granted to the multiple computers for accessing different portions of the shared storage;
receiving, from the plurality of processes, corresponding requests for access to a common location in the shared storage; and
processing the corresponding requests received from the plurality of processes by utilizing the unified address space to map the requests into the data access information and identify, at respective computers, access properties associated with the common storage location to identify possible contention issues associated with other processes having access to the common location in the shared storage;
at a given computer of the multiple computers;
receiving a request to access a file in the shared storage;
converting an identifier associated with the file to an address value in the unified address space;
mapping the address value in the unified address space to a pointer, the pointer pointing to specific data access information specifying access rights for the file; and
utilizing the pointer to obtain the specific data access information to determine which, if any, of the multiple computers has current access rights to the file in shared storage, the method further comprising;
accessing a property object in the specific data access information, the property object corresponding to the address value in the unified address space, the property object associated with a range starting at the address value in the unified address space to identify a current status of access rights of file data with respect to other computers having access to portions of the shared storage, the property object specifying access rights for a portion of shared storage;
utilizing the property object to identify a current status of access rights of file data with respect to other computers and their current accessibility rights with respect to a common volume in the shared storage.
10 Assignments
0 Petitions
Accused Products
Abstract
Each of multiple computers in a cluster of computers negotiates access to locations in a common storage system. Each of the computers (coupled together via a network) in the cluster includes a transaction manager application to coordinate access to shared storage locations (such as a volume or portions thereof) in the storage system. The transaction managers at each of the multiple computers utilize a unified address space that maps locations in the storage system to corresponding access properties maintained by respective transaction managers in the computers. The access properties derived from use of the unified address space indicate an access status of the regions or locations in the shared storage system. If necessary, the computers in a cluster communicate with each other to negotiate access to the shared storage. Also, the computers in a cluster communicate so that current access properties maintained in each computer are consistent.
68 Citations
20 Claims
-
1. A computer-implemented method for providing a plurality of processes concurrent access to shared storage, the method comprising:
-
at each of multiple computers having access to the shared storage, maintaining a unified address space that maps locations of the shared storage to corresponding data access information, the corresponding data access information indicating access rights granted to the multiple computers for accessing different portions of the shared storage; receiving, from the plurality of processes, corresponding requests for access to a common location in the shared storage; and processing the corresponding requests received from the plurality of processes by utilizing the unified address space to map the requests into the data access information and identify, at respective computers, access properties associated with the common storage location to identify possible contention issues associated with other processes having access to the common location in the shared storage; at a given computer of the multiple computers; receiving a request to access a file in the shared storage; converting an identifier associated with the file to an address value in the unified address space; mapping the address value in the unified address space to a pointer, the pointer pointing to specific data access information specifying access rights for the file; and utilizing the pointer to obtain the specific data access information to determine which, if any, of the multiple computers has current access rights to the file in shared storage, the method further comprising; accessing a property object in the specific data access information, the property object corresponding to the address value in the unified address space, the property object associated with a range starting at the address value in the unified address space to identify a current status of access rights of file data with respect to other computers having access to portions of the shared storage, the property object specifying access rights for a portion of shared storage; utilizing the property object to identify a current status of access rights of file data with respect to other computers and their current accessibility rights with respect to a common volume in the shared storage. - View Dependent Claims (2)
-
-
3. In an environment including multiple computers having concurrent access to shared storage, a computer-implemented method comprising:
-
providing a transaction manager at each of the multiple computers in the environment to coordinate access to locations in the shared storage, the transaction manager at each of the multiple computers utilizing a unified address space that maps locations in the shared storage to corresponding access properties maintained by respective transaction managers, the access properties indicating an access status of the locations associated with the shared storage, the transaction managers at each of the multiple computers supporting operations of; receiving a request to access data stored in the shared storage; identifying a unique address in a unified address space associated with the data stored in the shared storage; utilizing the unique address to retrieve access properties associated with the data in the shared storage; and based on the retrieved access properties, identifying whether other computers in the environment have requested contemporaneous access to the data and, if so, communicating with transaction managers at the other computers accessing a common storage location of the shared storage to resolve conflicts associated with multiple computers attempting to access the common storage location of the shared storage; at each of the multiple computers; maintaining the unified address space to span a range of address values, each of the address values corresponding to respective storage capacity in the shared storage; producing boundaries within the unified address space; and utilizing the boundaries to define ranges in the unified address space, the ranges in the unified address space representing corresponding portions of storage capacity in the shared storage; maintaining a respective property object for each of the ranges in the unified address space, each respective property object indicating access rights to a respective portion of the shared storage to which a range pertains; at a first computer of the multiple computers, receiving a request to access a file in the shared storage; converting an identifier associated with the file to an address value in the unified address space; based on the address value in the unified address space, identifying a specific range in the unified address space in which the address value resides; accessing a property object for the specific range in the unified address space; and analyzing the property object to identify which, if any, of the multiple computers has current access rights to the file. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer system for managing access to shared storage, the computer system comprising:
-
a processor; a memory unit that stores instructions associated with an application executed by the processor; a communication interface that supports communication with other computers having access to the shared storage; and an interconnect coupling the processor, the memory unit, and the communication interface, enabling the computer system to execute the application and perform operations of; providing a transaction manager at each of the multiple computers in the environment to coordinate access to locations in the shared storage, the transaction manager at each of the multiple computers utilizing a unified address space that maps locations in the shared storage to corresponding access properties maintained by respective transaction managers, the access properties indicating an access status of the locations associated with the shared storage, the transaction managers at each of the multiple computers supporting operations of; receiving a request to access data stored in the shared storage; identifying a unique address in a unified address space associated with the data stored in the shared storage; utilizing the unique address to retrieve access properties associated with the data in the shared storage; and based on the retrieved access properties, identifying whether other computers in the environment have requested contemporaneous access to the data and, if so, communicating with transaction managers at the other computers accessing a common storage location of the shared storage to resolve conflicts associated with multiple computers attempting to access the common storage location of the shared storage; at each of the multiple computers; maintaining the unified address space to span a range of address values, each of the address values corresponding to respective storage capacity in the shared storage; producing boundaries within the unified address space; and utilizing the boundaries to define ranges in the unified address space, the ranges in the unified address space representing corresponding portions of storage capacity in the shared storage; maintaining a respective property object for each of the ranges in the unified address space, each respective property object indicating access rights to a respective portion of the shared storage to which a range pertains; at a first computer of the multiple computers, receiving a request to access a file in the shared storage; converting an identifier associated with the file to an address value in the unified address space; based on the address value in the unified address space, identifying a specific range in the unified address space in which the address value resides; accessing a property object for the specific range in the unified address space; and analyzing the property object to identify which, if any, of the multiple computers has current access rights to the file.
-
Specification