Path selection to read or write data
First Claim
Patent Images
1. A method comprising:
- determining a number of read blocks pending for each path from a host to a logical device;
determining a number of write blocks pending for each path from the host to the logical device;
determining one or more factors associated with time for each path from the host to the logical device, wherein determining one or more factors associated with time for each path comprises determining a weighted average time to read a single block for each path from the host to the logical device or a weighted average time to write a single block for each path from the host to the logical device, wherein determining a weighted average time to read a single block for each path comprises;
assigning weights to each of the N blocks read for the path including assigning larger weight to more recently read blocks,generating weighted read times for each of the last N blocks read for the path by multiplying an actual reading time by the corresponding weight; and
calculating an average of the weighted read times; and
selecting a path from the host to the logical device to read or write data using the number of read blocks pending, the number of write blocks pending and the one or more factors associated with time.
10 Assignments
0 Petitions
Accused Products
Abstract
In one aspect, a method includes determining a number of read blocks pending for each path from a host to a logical device, determining a number of write blocks pending for each path from the host to the logical device, determining one or more factors associated with time for each path from the host to the logical device and selecting a path from the host to the logical device to read or write data using the number of read blocks pending, the number of write blocks pending and the one or more factors associated with time.
-
Citations
18 Claims
-
1. A method comprising:
-
determining a number of read blocks pending for each path from a host to a logical device; determining a number of write blocks pending for each path from the host to the logical device; determining one or more factors associated with time for each path from the host to the logical device, wherein determining one or more factors associated with time for each path comprises determining a weighted average time to read a single block for each path from the host to the logical device or a weighted average time to write a single block for each path from the host to the logical device, wherein determining a weighted average time to read a single block for each path comprises; assigning weights to each of the N blocks read for the path including assigning larger weight to more recently read blocks, generating weighted read times for each of the last N blocks read for the path by multiplying an actual reading time by the corresponding weight; and calculating an average of the weighted read times; and selecting a path from the host to the logical device to read or write data using the number of read blocks pending, the number of write blocks pending and the one or more factors associated with time. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An apparatus, comprising:
electronic hardware circuitry configured to; determine a number of read blocks pending for each path from a host to a logical device; determine a number of write blocks pending for each path from the host to the logical device; determine one or more factors associated with time for each path from the host to the logical device, wherein the one or more factors associated with time for each path comprise a weighted average time to read a single block for each path from the host to the logical device or a weighted average time to write a single block for each path from the host to the logical device, wherein determining a weighted average time to read a single block for each path comprises; assigning weights to each of the last N blocks read for the path including assigning larger weights to more recently read blocks; generating weight read times for each of the last N blocks read for the path by multiplying an actual reading time by the corresponding weight; and calculating an average of the weighted read times; and select a path from the host to the logical device to read or write data using the number of read blocks pending, the number of write blocks pending the one or more factors associated with time. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
14. An article comprising:
a non-transitory computer-readable medium that stores computer-executable instructions, the instructions causing a machine to; determine a number of read blocks pending for each path from a host to a logical device; determine a number of write blocks pending for each path from the host to the logical device; determine one or more factors associated with time for each path from the host to the logical device, wherein the one or more factors associated with time for each path comprise a weighted average time to read a single block for each path from the host to the logical device or a weighted average time to write a single block for each path from the host to the logical device, wherein determining a weighted average time to read a single book for each path comprises; assigning weights to each of the last N blocks read for the path including assigning larger weights to more recently read blocks; generating weighted read times for each of the last N blocks read for the path by multiplying an actual reading time by the corresponding weight; and calculating an average of the weighted read times; and select a path from the host to the logical device to read or write data using the number of read blocks pending, the number of write blocks pending the one or more factors associated with time. - View Dependent Claims (15, 16, 17, 18)
Specification