US11762559B2ActiveUtilityA1

Write sort management in a multiple storage controller data storage system

49
Assignee: IBMPriority: May 15, 2020Filed: May 15, 2020Granted: Sep 19, 2023
Est. expiryMay 15, 2040(~13.9 yrs left)· nominal 20-yr term from priority
G06F 3/0683G06F 3/061G06F 3/0659G06F 3/0635G06F 2206/1012G06F 3/0653G06F 3/0619
49
PatentIndex Score
0
Cited by
41
References
25
Claims

Abstract

In one aspect of write sort management in accordance with the present disclosure, a write sort task related to write sorting a write list of data units to be destaged to storage, is assigned to a storage controller to improve the load balance among plural storage controllers. In one embodiment, available processing capacities of each of the storage controllers is determined by, for example, polling each of the storage controllers. A write sort task may then be assigned to a selected storage controller as a function of determined available processing capacities of each of the storage controllers to improve the load balance among the storage controllers. Other aspects and advantages are provided, depending upon the particular application.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A computer program product, the computer program product comprising a computer readable non-transitory storage medium having program code embodied therewith, the program code executable by at least one processor of a computer system having a plurality of storage controllers having a cache and storage controlled by a storage controller, to perform operations, the operations comprising:
 destaging data from a cache to at least one storage controlled by a storage controller of the plurality of storage controllers, including:
 determining by a supervisory storage controller, available processing capacities of each of a first plurality of storage controllers of the plurality of storage controllers; 
 prior to issuing to a target storage controller a sequence of write commands based upon a write list of data units to be destaged to the storage, assigning by the supervisory storage controller to a selected storage controller of the first plurality of storage controllers, as a function of available processing capacities of each of the first plurality of storage controllers, a write sort task of write sorting the write list of data units to be destaged to the at least one storage controlled by a storage controller of the plurality of storage controllers; and 
 following the assigning the write sort task, issuing the sequence of write commands based upon a sorted write list of data units to be destaged to the storage. 
 
 
     
     
       2. The computer program product of  claim 1  wherein the determining available processing capacities of each of the first plurality of storage controllers includes polling each of the first plurality of storage controllers to request the available processing capacities of each of the polled first plurality of storage controllers. 
     
     
       3. The computer program product of  claim 1  wherein the write sort task assigning to the storage controller of the first plurality of storage controllers includes load balancing loads of the plurality of storage controllers. 
     
     
       4. The computer program product of  claim 1  wherein the write list of the write sort task is an initiator write list for generating a sequence of write commands for issuing to a target storage controller for destaging the data units to the at least one storage controlled by the target storage controller. 
     
     
       5. The computer program product of  claim 4  wherein the write sort task includes write sorting entries of the initiator write list as a function of a storage location identified by each entry, in a monotonic sequence order of storage location identifications of the initiator write list entries. 
     
     
       6. The computer program product of  claim 5  wherein the destaging data includes setting a sort/no-sort indicator for transmitting to a target storage controller in association with a write command of the sequence of commands, to indicate to the target storage controller to bypass a determination of an insertion point for a write data unit of a write command in a target write list of write data units of the target storage controller at the target storage controller as a function of the sort/no-sort indicator. 
     
     
       7. The computer program product of  claim 5  wherein the write sorting entries of the initiator write list as a function of a storage location identified by each entry, includes a logarithmic time search of initiator write list entries to arrange the initiator write list entries in the monotonic sequence order of storage location identifications. 
     
     
       8. The computer program product of  claim 5  wherein the write sorting entries of the initiator write list as a function of a storage location identified by each entry, includes a sequential search of initiator write list entries to arrange the initiator write list entries in the monotonic sequence order of storage location identifications. 
     
     
       9. The computer program product of  claim 5  wherein the write list of the write sort task is a target write list for generating a sequence of destaging operations for destaging data units of the target write list to storage controlled by the target storage controller and wherein the assigned write sort task includes at least one of a logarithmic time search and a limited time search of the target write list to determine a target write list insertion point which maintains a monotonic sequence order after an entry is inserted into the target write list. 
     
     
       10. A method, comprising:
 destaging data from a cache to storage including:
 determining by a supervisory storage controller, available processing capacities of each of a first plurality of storage controllers; 
 prior to issuing to a target storage controller a sequence of write commands based upon a write list of data units to be destaged to the storage, assigning by the supervisory storage controller, to a selected storage controller of the first plurality of storage controllers, as a function of available processing capacities of each of the first plurality of storage controllers, a write sort task of write sorting the write list of data units to be destaged to the storage; and 
 following the assigning the write sort task, issuing the sequence of write commands based upon a sorted write list of data units to be destaged to the storage. 
 
 
     
     
       11. The method of  claim 10  wherein the determining available processing capacities of each of the plurality of storage controllers includes polling each of the first plurality of storage controllers to request the available processing capacities of each of the polled first plurality of storage controllers. 
     
     
       12. The method of  claim 10  wherein the write sort task assigning to the storage controller of the first plurality of storage controllers includes load balancing loads of the plurality of storage controllers. 
     
     
       13. The method of  claim 10  wherein the write list of the write sort task is an initiator write list for generating a sequence of write commands for issuing to a target storage controller for destaging the data units to at least one storage controlled by the target storage controller. 
     
     
       14. The method of  claim 13  wherein the write sort task includes write sorting entries of the initiator write list as a function of a storage location identified by each entry, in a monotonic sequence order of storage location identifications of the initiator write list entries. 
     
     
       15. The method of  claim 14  wherein the destaging data includes setting a sort/no-sort indicator to be transmitted to a target storage controller in association with a write command of the sequence of commands, to indicate to the target storage controller to bypass a determination of an insertion point for a write data unit of a write command in a target write list of write data units of the target storage controller at the target storage controller as a function of the sort/no-sort indicator. 
     
     
       16. The method of  claim 14  wherein the write sorting entries of the initiator write list as a function of a storage location identified by each entry, includes a logarithmic time search of initiator write list entries to arrange the initiator write list entries in the monotonic sequence order of storage location identifications. 
     
     
       17. The method of  claim 14  wherein the write sorting entries of the initiator write list as a function of a storage location identified by each entry, includes a sequential search of initiator write list entries to arrange the initiator write list entries in the monotonic sequence order of storage location identifications. 
     
     
       18. The method of  claim 14  wherein the write list of the write sort task is a target write list for generating a sequence of destaging operations for destaging data units of the target write list to storage controlled by the target storage controller and wherein the assigned write sort task includes at least one of a logarithmic time search and a limited time search of the target write list to determine a target write list insertion point which maintains a monotonic sequence order after an entry is inserted into the target write list. 
     
     
       19. A system, comprising:
 a host configured to issue input/output (I/O) requests: 
 a processing unit configured to issue write commands in response to an I/O request; 
 at least one storage, each storage having storage locations; and 
 a plurality of storage controllers configured to control at least one storage including a supervisory storage controller and a target storage controller having a memory for a target write list of entries of write data units, the target storage controller configured to control at least one storage in response to the write commands; 
 wherein at least one of the host, processing unit, supervisory storage controller and target storage controller has a cache having a write list of write data units, at least one processor and at least one computer program product, the computer program product comprising a computer readable storage medium having program code embodied therewith, the program code executable by at least one processor of the system to perform operations, the operations comprising: 
 destaging data from a cache to at least one storage controlled by a storage controller of the plurality of storage controllers, including:
 determining by the supervisory storage controller, available processing capacities of each of a first plurality of storage controllers of the plurality of storage controllers; 
 prior to issuing to a target storage controller a sequence of write commands based upon a write list of data units to be destaged to at least one storage, assigning by the supervisory storage controller, to a storage controller of the first plurality of storage controllers, as a function of available processing capacities of each of the first plurality of storage controllers, a write sort task of write sorting the write list of data units to be destaged to at least one storage controlled by a storage controller of the plurality of storage controllers; and 
 following the assigning the write sort task, issuing the sequence of write commands based upon a sorted write list of data units to be destaged to the storage. 
 
 
     
     
       20. The system of  claim 19  wherein the determining available processing capacities of each of the first plurality of storage controllers includes polling each of the plurality of storage controllers to request the available processing capacities of each of the polled first plurality of storage controllers. 
     
     
       21. The system of  claim 19  wherein the write sort task assigning to the storage controller of the first plurality of storage controllers includes load balancing loads of the plurality of storage controllers. 
     
     
       22. The system of  claim 19  wherein the write list of the write sort task is an initiator write list for generating a sequence of write commands for issuing to a target storage controller for destaging the data units to the at least one storage controlled by the target storage controller. 
     
     
       23. The system of  claim 22  wherein the write sort task includes write sorting entries of the initiator write list as a function of a storage location identified by each entry, in a monotonic sequence order of storage location identifications of the initiator write list entries. 
     
     
       24. The system of  claim 23  wherein the destaging data includes setting a sort/no-sort indicator for transmitting to a target storage controller in association with a write command of the sequence of commands, to indicate to the target storage controller to bypass a determination of an insertion point for a write data unit of a write command in a target write list of write data units of the target storage controller at the target storage controller as a function of the sort/no-sort indicator. 
     
     
       25. The system of  claim 23  wherein the write sorting entries of the initiator write list as a function of a storage location identified by each entry, includes at least one of a logarithmic time search of initiator write list entries to arrange the initiator write list entries in the monotonic sequence order of storage location identifications, and a sequential search of initiator write list entries to arrange the initiator write list entries in the monotonic sequence order of storage location identifications, wherein the write list of the write sort task is a target write list for generating a sequence of destaging operations for destaging data units of the target write list to storage controlled by the target storage controller and wherein the assigned write sort task includes at least one of a logarithmic time search and a limited time search of the target write list to determine a target write list insertion point which maintains a monotonic sequence order after an entry is inserted into the target write list.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.