P
US11010248B2ActiveUtilityPatentIndex 62

Reuse of resources in a storage controller for executing write commands over a plurality of interfaces

Assignee: IBMPriority: Feb 28, 2019Filed: Feb 28, 2019Granted: May 18, 2021
Est. expiryFeb 28, 2039(~12.6 yrs left)· nominal 20-yr term from priority
Inventors:PETERSON BETH AASH KEVIN JGUPTA LOKESH MFUNG CHUNG M
G06F 3/0659G06F 11/141G06F 11/1443G06F 2212/214G06F 3/0619G06F 3/0679G06F 11/0772G06F 12/0868G06F 3/0683
62
PatentIndex Score
0
Cited by
39
References
20
Claims

Abstract

Provided are a method, system, and computer program product in which a storage controller receives a first write command with a first token over a first interface from a host computational device. In response to a failure of the first write command in the storage controller, the storage controller retains selected resources for reuse for a retry of the first write command, wherein the retry of the first write command is expected from the host computational device over a second interface that is a slower communication link than the first interface. In response to receiving, by the storage controller, a second write command with a second token over the second interface, wherein the second token is identical to the first token, the storage controller determines that the second write command is a retry of the first write command and reuses the retained selected resources for executing the second write command.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method, comprising:
 receiving, by a storage controller, a first write command with a first token over a first interface from a host computational device; 
 in response to a failure of the first write command in the storage controller, retaining selected resources for reuse for a retry of the first write command, wherein the retry of the first write command is expected from the host computational device over a second interface that is a slower communication link than the first interface; and 
 in response to receiving, by the storage controller, a second write command with a second token over the second interface, wherein the second token is identical to the first token, determining that the second write command is a retry of the first write command and reusing the retained selected resources for executing the second write command. 
 
     
     
       2. The method of  claim 1 , the method further comprising:
 in response to determining, by the storage controller, that the second token received with the second write command is identical to the first token received with the first write command, determining that the selected resources retained in response to the failure of the first write command are to be reused for executing the second write command. 
 
     
     
       3. The method of  claim 1 , wherein:
 the first interface is a bus interface; and 
 the second interface is a network interface. 
 
     
     
       4. The method of  claim 3 , wherein the first write command is executed over the bus interface via a synchronous input/output (I/O) process, wherein in the synchronous I/O process, the host computational device holds an application thread in a spin loop waiting for the first write command to complete. 
     
     
       5. The method of  claim 3 , wherein the second write command is executed over the network interface via a process in which the host computational device does not hold an application thread in a spin loop waiting for the second write command to complete. 
     
     
       6. The method of  claim 3 , wherein the first write command is executed over the bus interface via a process in which the host computational device holds an application thread in a spin loop waiting for the first write command to complete. 
     
     
       7. The method of  claim 1 , wherein the first write command is executed over the first interface via a process in which the host computational device holds an application thread in a spin loop waiting for the first write command to complete. 
     
     
       8. A system, comprising:
 a memory; and 
 a processor coupled to the memory, wherein the processor performs operations, the operations comprising: 
 receiving a first write command with a first token over a first interface from a host computational device; 
 in response to a failure of the first write command, retaining selected resources for reuse for a retry of the first write command, wherein the retry of the first write command is expected from the host computational device over a second interface that is a slower communication link than the first interface; and 
 in response to receiving a second write command with a second token over the second interface, wherein the second token is identical to the first token, determining that the second write command is a retry of the first write command and reusing the retained selected resources for executing the second write command. 
 
     
     
       9. The system of  claim 8 , the operations further comprising:
 in response to determining that the second token received with the second write command is identical to the first token received with the first write command, determining that the selected resources retained in response to the failure of the first write command are to be reused for executing the second write command. 
 
     
     
       10. The system of  claim 8 , wherein:
 the first interface is a bus interface; and 
 the second interface is a network interface. 
 
     
     
       11. The system of  claim 10 , wherein the first write command is executed over the bus interface via a synchronous input/output (I/O) process, wherein in the synchronous I/O process, the host computational device holds an application thread in a spin loop waiting for the first write command to complete. 
     
     
       12. The system of  claim 11 , wherein the first write command is executed over the bus interface via a process in which the host computational device holds an application thread in a spin loop waiting for the first write command to complete. 
     
     
       13. The system of  claim 10 , wherein the second write command is executed over the network interface via a process in which the host computational device does not hold an application thread in a spin loop waiting for the second write command to complete. 
     
     
       14. The system of  claim 8 , wherein the first write command is executed over the first interface via a process in which the host computational device holds an application thread in a spin loop waiting for the first write command to complete. 
     
     
       15. A computer program product, the computer program product comprising a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code configured to perform operations, the operations comprising:
 receiving, by a storage controller, a first write command with a first token over a first interface from a host computational device; 
 in response to a failure of the first write command in the storage controller, retaining selected resources for reuse for a retry of the first write command, wherein the retry of the first write command is expected from the host computational device over a second interface that is a slower communication link than the first interface; and 
 in response to receiving, by the storage controller, a second write command with a second token over the second interface, wherein the second token is identical to the first token, determining that the second write command is a retry of the first write command and reusing the retained selected resources for executing the second write command. 
 
     
     
       16. The computer program product of  claim 15 , the operations further comprising:
 in response to determining, by the storage controller, that the second token received with the second write command is identical to the first token received with the first write command, determining that the selected resources retained in response to the failure of the first write command are to be reused for executing the second write command. 
 
     
     
       17. The computer program product of  claim 15 , wherein:
 the first interface is a bus interface; and 
 the second interface is a network interface. 
 
     
     
       18. The computer program product of  claim 17 , wherein the first write command is executed over the bus interface via a synchronous input/output (I/O) process, wherein in the synchronous I/ 0  process, the host computational device holds an application thread in a spin loop waiting for the first write command to complete. 
     
     
       19. The computer program product of  claim 18 , wherein the first write command is executed over the bus interface via a process in which the host computational device holds an application thread in a spin loop waiting for the first write command to complete. 
     
     
       20. The computer program product of  claim 15 , wherein the first write command is executed over the first interface via a process in which the host computational device holds an application thread in a spin loop waiting for the first write command to complete.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.