Load balancing by dynamically transferring memory range assignments
First Claim
1. A method for accessing a storage device, comprising:
- receiving, from a host apparatus, an access request directed at two or more storage addresses;
assigning, based on a first storage address of the two or more storage addresses, the access request to a first processor of two or more processors of the storage device;
obtaining a local memory lock based on the first storage address;
determining, based on a second storage address of the two or more storage addresses, that the second storage address is assigned to a second processor of the two or more processors;
obtaining a remote memory lock from the second processor based on the second storage address;
issuing a transition barrier command to each processor of the two or more processors;
receiving, from each processor of the two or more processors, a response to the transition barrier command;
issuing a transition barrier complete message to each processor of the two or more processors after receiving the response from all of the two or more processors; and
processing the access request.
7 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for accessing a storage device is disclosed. More specifically, for load balancing by dynamically transferring memory address range assignments. In one embodiment, a storage device receives, from a host apparatus, an access request directed at two or more storage addresses, assigns, based on a first storage address of the two or more storage addresses, the access request to a first processor of two or more processors of the storage device, obtains a local memory lock based on the first storage address, determines, based on a second storage address of the two or more storage addresses, that the second storage address is assigned to a second processor of the two or more processors, obtains a remote memory lock from the second processor based on the second storage address and processes the access request.
-
Citations
26 Claims
-
1. A method for accessing a storage device, comprising:
-
receiving, from a host apparatus, an access request directed at two or more storage addresses; assigning, based on a first storage address of the two or more storage addresses, the access request to a first processor of two or more processors of the storage device; obtaining a local memory lock based on the first storage address; determining, based on a second storage address of the two or more storage addresses, that the second storage address is assigned to a second processor of the two or more processors; obtaining a remote memory lock from the second processor based on the second storage address; issuing a transition barrier command to each processor of the two or more processors; receiving, from each processor of the two or more processors, a response to the transition barrier command; issuing a transition barrier complete message to each processor of the two or more processors after receiving the response from all of the two or more processors; and processing the access request. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer system for storing and retrieving data, comprising:
-
a processor; and a memory storing instructions that, when executed by the processor, cause the computer system to; receive, from a host apparatus, an access request directed at two or more storage addresses; assign, based on a first storage address of the two or more storage addresses, the access request to a first processor of two or more processors of the storage device; obtain a local memory lock based on the first storage address; determine, based on a second storage address of the two or more storage addresses, that the second storage address is assigned to a second processor of the two or more processors; obtain a remote memory lock from the second processor based on the second storage address; issue a transition barrier command to each processor of the two or more processors; receive, from each processor of the two or more processors, a response to the transition barrier command; issue a transition barrier complete message to each processor of the two or more processors after receiving the response from all of the two or more processors; and process the access request. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer readable storage medium containing instructions that, when executed by a processor, performs the following method:
-
receive, from a host apparatus, an access request directed at two or more storage addresses; assign, based on a first storage address of the two or more storage addresses, the access request to a first processor of two or more processors of the storage device; obtain a local memory lock based on the first storage address; determine, based on a second storage address of the two or more storage addresses, that the second storage address is assigned to a second processor of the two or more processors; obtain a remote memory lock from the second processor based on the second storage address; issue a transition barrier command to each processor of the two or more processors; receive, from each processor of the two or more processors, a response to the transition barrier command; issue a transition barrier complete message to each processor of the two or more processors after receiving the response from all of the two or more processors; and process the access request. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. A device, comprising:
-
means for receiving, from a host apparatus, an access request directed at two or more storage addresses; means for assigning, based on a first storage address of the two or more storage addresses, the access request to a first processor of two or more processors of the storage device; first means for obtaining a local memory lock based on the first storage address; means for determining, based on a second storage address of the two or more storage addresses, that the second storage address is assigned to a second processor of the two or more processors; second means for obtaining a remote memory lock from the second processor based on the second storage address; means for issuing a transition barrier command to each processor of the two or more processors; means for receiving, from each processor of the two or more processors, a response to the transition barrier command; means for issuing a transition barrier complete message to each processor of the two or more processors after receiving the response from all of the two or more processors; and means for processing the access request. - View Dependent Claims (23, 24, 25, 26)
-
Specification