A data network includes a switch that links a number of host processors to
shared resources such as network ports of a cached storage subsystem. The
switch routes resource requests from its inputs to selected ones of its
outputs in accordance with programmed routing information. The routing
information is changed dynamically based on measured loading
characteristics of requests from the switch inputs or the respective
hosts, in order to reduce the probability of blocked paths. In a specific
example, respective subsets of output ports of the switch are assigned to
each respective input port, the loading of each input port of the switch
is measured, and the respective subset of output ports assigned to each
input port are repetitively changed, and the respective subset of an input
port is changed in response to blocking of the output ports assigned to
the input port. A respective subset is selected based on the measured
loading characteristics and a priority assigned to the input port, in
order to balance loading on the output ports. In another specific example,
a respective subset of the output ports is assigned to each host, based on
host loading characteristics and a respective priority assigned to each
host.