In certain embodiments, the load balancing application 104 and the machine learning module 106 may be implemented in software, hardware, firmware or any combination thereof. The load balancing application 104 uses the machine learning module 106 to determine the optimal allocation of resources to interfaces in the storage controller.
In certain embodiments, the machine learning module 106 may implement a machine learning technique such as decision tree learning, association rule learning, neural network, inductive programming logic, support vector machines, Bayesian models, etc. In certain embodiments, the machine learning module 106 is a neural network implemented in the storage controller 102 or in some other computational device that receives failure data and other information related to the storage controller 102.
A host bus adapter 114 is an interface that communicatively couples the storage controller to a host 108, where the host bus adapter 114 may include a plurality of ports 116, 118. I/O requests from the host 108 are received are processed via the ports 116, 118 of the host bus adapter 114. The ports 116, 118 and the host bus adapter 114 are interfaces of the storage controller.
A pool of resources 120, such as a plurality of TCBs 122, 124, 126, 128 may be available for allocation to the plurality of ports 116, 118. In