Distributed I/O store
First Claim
1. A method for implementing I/O requests on a network including a plurality of server nodes and at least one resource coupled to at least two of the plurality of server nodes, the method comprising:
- receiving at a first of the plurality of server nodes an I/O request for a data set located on the at least one resource;
sending from the first of the plurality of server nodes to a second among the plurality of server nodes an access request for a location of the data set on the at least one resource;
receiving at the second among the plurality of server nodes the access request for the location of the data set on the at least one resource;
verifying at the second among the plurality of server nodes that the requested data set includes access privileges for a node generating the I/O request, wherein the access privileges comprise at least one of a group of access privileges consisting of;
a security privilege indicating the access rights of the node generating the request, a parameter privilege indicating that the parameters of the access request are valid, and a lock privilege indicating whether another I/O request has obtained a lock that conflicts with the request;
identifying, at the second among the plurality of server nodes, the location of the data set on the at least one resource;
sending from the second among the plurality of server nodes to the first among the plurality of server nodes the list, responsive to an affirmative result of the verifying act;
receiving at the first among the plurality of server nodes a list from the second among the plurality of server nodes listing the location of the data set on the at least one resource; and
completing at the first among the plurality of servers a data transfer of the data set at the location on the at least one resource listed in the received list.
7 Assignments
0 Petitions
Accused Products
Abstract
The current invention provides a method for improving throughput to or from a resource by allowing multiple servers to concurrently access the resource without affecting the integrity of the resource. Generally, by allowing one server to handle the administrative management of a resource, while allowing all servers, including the administrative server, to handle the actual passing of data associated with the I/O request, allows for increased bandwidth between clients and the resource. An I/O request to a first server node is converted into an access portion and a data transfer portion. The access portion is passed to a corresponding administrative server node for the resource. Subsequently, the administrative server may issue an access grant to the first server node. In response, the first server completes the data transfer for the resource.
498 Citations
25 Claims
-
1. A method for implementing I/O requests on a network including a plurality of server nodes and at least one resource coupled to at least two of the plurality of server nodes, the method comprising:
-
receiving at a first of the plurality of server nodes an I/O request for a data set located on the at least one resource; sending from the first of the plurality of server nodes to a second among the plurality of server nodes an access request for a location of the data set on the at least one resource; receiving at the second among the plurality of server nodes the access request for the location of the data set on the at least one resource; verifying at the second among the plurality of server nodes that the requested data set includes access privileges for a node generating the I/O request, wherein the access privileges comprise at least one of a group of access privileges consisting of;
a security privilege indicating the access rights of the node generating the request, a parameter privilege indicating that the parameters of the access request are valid, and a lock privilege indicating whether another I/O request has obtained a lock that conflicts with the request;identifying, at the second among the plurality of server nodes, the location of the data set on the at least one resource; sending from the second among the plurality of server nodes to the first among the plurality of server nodes the list, responsive to an affirmative result of the verifying act; receiving at the first among the plurality of server nodes a list from the second among the plurality of server nodes listing the location of the data set on the at least one resource; and completing at the first among the plurality of servers a data transfer of the data set at the location on the at least one resource listed in the received list. - View Dependent Claims (24)
-
-
2. A method for implementing I/O requests, the I/O request includes a write request, on a network including a plurality of server nodes and at least one resource coupled to at least two of the plurality of server nodes, the method comprising:
-
receiving at a first of the plurality of server nodes on I/O request for a data set located on the at least one resource; sending from the first of the plurality of server nodes to a second among the plurality of server nodes an access request for a location of the data set on the at least one resource responsive to the receiving act; receiving at the second among the plurality of server nodes the access request for the location of the data set on the at least one resource; determining, at the second among the plurality of server nodes, whether the data set is locked; identifying, at the second among the plurality of server nodes, the location of the data set on the at least one resource; sending from the second among the plurality of server nodes to the first among the plurality of server nodes the list, when the data set is unlocked; receiving at the first among the plurality of server nodes a list from the second among the plurality of server nodes listing the location of the data set on the at least one resource responsive to the sending act; and completing at the first among the plurality of servers a data transfer of the data set at the location on the at least one resource listed in the list received in said receiving act.
-
-
3. A method for implementing I/O requests, including a write request, on a network including a plurality of server nodes, and at least one resource coupled to at least two of the plurality of server nodes, the method comprising:
-
receiving at a first of the plurality of server nodes on I/O request for a data set located on the at least one resource; sending from the first of the plurality of server nodes to a second among the plurality of server nodes an access request for a location of the data set on the at least one resource responsive to the receiving act; receiving at the second among the plurality of server nodes the access request for the location of the data set on the at least one resource; identifying a location of the data set on the at least one resource in response to the receiving act; determining that the location of the data set does not include sufficient space to fulfill the write request; allocating free space on the at least one resource sufficient to fulfill the access request; sending from the second among the plurality of server nodes to the first among the plurality of server nodes the list corresponding both to the location of the data set and the location of the free space allocated in the allocating space; receiving at the first among the plurality of server nodes a list from the second among the plurality of server nodes listing the location of the data set on the at least one resource responsive to the sending act; and completing at the first among the plurality of servers a data transfer of the data set at the location on the at least one resource listed in the list received in said receiving act. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for implementing I/O on a network including a plurality of server nodes and at least one resource coupled to at least two of the plurality of server nodes, the method comprising:
-
receiving at a second among the plurality of server nodes an access request from a first among the plurality of server nodes for the location of the data set on the at least one resource; identifying the location of the data set on the at least one resource in response to the receiving the access request; verifying that the requested data set includes access privileges for a node generating the I/O request, and the access privileges comprising at least one of a group of access privileges consisting of;
a security privilege indicating the access rights of the node generating the request, a parameter privilege indicating that the parameters of the access request are valid, and a lock privilege indicating whether another I/O request has a lock that conflicts with the request;sending from the second among the plurality of server nodes to the first among the plurality of server nodes the list, responsive to an affirmative result of verifying that the requested data set includes access privileges for the node generating the I/O request. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25)
-
Specification