IP Library Granted Patent US 11,016,674
Granted Patent B2
US 11,016,674 · App. 16/506,033 · Granted May 25, 2021

Method, device, and computer program product for reading data

Inventors: Hongpo Gao (Beijing, CN); Jian Gao (Beijing, CN); Xinlei Xu (Beijing, CN); Geng Han (Beijing, CN); Jianbin Kang (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F3/0614G06F3/0604G06F3/0647G06F3/0653G06F3/0689
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,016,674
App. No.
16/506,033
Granted
May 25, 2021
Kind
B2
Abstract

Techniques are directed to reading data. Such techniques involve in response to receiving a read request for the target data, determining that target data is stored in both a first storage device and a second storage device. Such techniques further involve determining at least one of reliability and access load for each of the first storage device and the second storage device. Such techniques further involve: determining, based on the at least one of the reliability and the access load, one of the first storage device and the second storage device as a target storage device so as to respond to the read request. By means of certain techniques, at least one of the access load and service lives is balanced between storage devices so as to improve the efficiency of data read and the overall performance of a storage system.

Claims (100)

1. A method of reading data, comprising:

in response to receiving a read request for target data, determining that the target data is stored in both a first storage device and a second storage device;

determining at least one of reliability and access load for each of the first storage device and the second storage device; and

determining, based on the at least one of the reliability and the access load, one of the first storage device and the second storage device as a target storage device so as to respond to the read request;

wherein determining one of the first storage device and the second storage device as the target storage device comprises:

comparing first reliability for the first storage device and second reliability for the second storage device with first threshold reliability; and

in response to both the first reliability and the second reliability being higher than the first threshold reliability, determining the target storage device based on the first reliability, the second reliability, first access load for the first storage device and second access load for the second storage device; and

wherein determining the target storage device based on the first reliability, the second reliability, the first access load and the second access load comprises:

comparing the first reliability and the second reliability with second threshold reliability respectively, the second threshold reliability being higher than the first threshold reliability; and

based on a result of comparing the first reliability and the second reliability with second threshold reliability, selecting one of the first storage device and the second storage device as the target storage device.

2. The method of claim 1 , further comprising:

in response to receiving a second read request for second target data and determining that the second target data is stored in both of the first storage device and the second storage device, determining one of the first storage device and the second storage device as the target storage device for the second read request by:

comparing first access load for the first storage device with second access load for the second storage device; and

in response to the first access load being lower than the second access load, determining the first storage device as the target storage device for the second read request.

3. The method of claim 1 , further comprising:

in response to receiving a second read request for second target data and determining that the second target data is stored in both of the first storage device and the second storage device, determining one of the first storage device and the second storage device as the target storage device for the second read request by:

comparing the first reliability for the first storage device with the second reliability for the second storage device; and

in response to the first reliability being higher than the second reliability, determining the first storage device as the target storage device for the second read request.

4. The method of claim 1 , further comprising:

in response to receiving a second read request for second target data and determining that the second target data is stored in both of the first storage device and the second storage device, determining one of the first storage device and the second storage device as the target storage device for the second read request by:

comparing the first reliability for the first storage device and the second reliability for the second storage device with the first threshold reliability respectively; and

in response to the first reliability being higher than the first threshold reliability and the second reliability being lower than the first threshold reliability, determining the first storage device as the target storage device for the second read request.

5. The method of claim 1 , wherein selecting one of the first storage device and the second storage device as the target storage device comprises:

in response to the first reliability being higher than the second threshold reliability and the second reliability being lower than the second threshold reliability,

determining a load difference between the first storage device and the second storage device, based on the first access load and the second access load;

in response to the load difference being less than a first threshold difference, determining the first storage device as the target storage device; and

in response to the load difference being greater than the first threshold difference, determining the target storage device from the first storage device and the second storage device, the target storage device being different from a storage device corresponding to a previous read operation on the target data.

6. The method of claim 1 , wherein selecting one of the first storage device and the second storage device as the target storage device comprises:

in response to both the first reliability and the second reliability being higher or lower than the second threshold reliability,

determining a load difference between the first storage device and the second storage device, based on the first access load and the second access load;

in response to the load difference being greater than a second threshold difference, determining a storage device with low access load from the first storage device and the second storage device as the target storage device; and

in response to the load difference being less than the first threshold difference, determining the target storage device from the first storage device and the second storage device, the target storage device being different from a storage device corresponding to a previous read operation on the target data.

7. The method of claim 1 , further comprising:

receiving the read request for the target data while copying data from a source storage region of the first storage device to a destination storage region of the second storage device;

wherein determining that the target data is stored in both the first storage device and the second storage device comprises:

determining that the target data has been copied from the source storage region to the destination storage region.

8. The method of claim 7 , wherein determining that the target data has been copied from the source storage region to the destination storage region comprises:

determining an end position of data in the source storage region that has been copied to the destination storage region; and

in response to an end position of the target data in the source storage region preceding the end position of the data that has been copied to the destination storage region, determining that the target data has been copied to the destination storage region.

9. An electronic device, comprising:

a processor; and

a memory coupled with the processor, the memory having instructions stored therein which, when executed by the processor, cause the device to perform acts comprising:

in response to receiving a read request for target data, determining that the target data is stored in both a first storage device and a second storage device;

determining at least one of reliability and access load for each of the first storage device and the second storage device; and

determining, based on the at least one of the reliability and the access load, one of the first storage device and the second storage device as a target storage device so as to respond to the read request;

wherein determining one of the first storage device and the second storage device as the target storage device comprises:

comparing first reliability for the first storage device and second reliability for the second storage device with first threshold reliability, respectively; and

in response to both the first reliability and the second reliability being higher than the first threshold reliability, determining the target storage device based on the first reliability, the second reliability, first access load for the first storage device and second access load for the second storage device; and

wherein determining the target storage device based on the first reliability, the second reliability, the first access load and the second access load comprises:

comparing the first reliability and the second reliability with second threshold reliability respectively, the second threshold reliability being higher than the first threshold reliability; and

based on a result of comparing the first reliability and the second reliability with second threshold reliability, selecting one of the first storage device and the second storage device as the target storage device.

10. The device of claim 9 , further comprising:

in response to receiving a second read request for second target data and determining that the second target data is stored in both of the first storage device and the second storage device, determining one of the first storage device and the second storage device as the target storage device for the second read request by:

comparing first access load for the first storage device with second access load for the second storage device; and

in response to the first access load being lower than the second access load, determining the first storage device as the target storage device for the second read request.

11. The device of claim 9 , further comprising:

in response to receiving a second read request for second target data and determining that the second target data is stored in both of the first storage device and the second storage device, determining one of the first storage device and the second storage device as the target storage device for the second read request by:

comparing the first reliability for the first storage device with the second reliability for the second storage device; and

in response to the first reliability being higher than the second reliability, determining the first storage device as the target storage device for the second read request.

12. The device of claim 9 , further comprising:

in response to receiving a second read request for second target data and determining that the second target data is stored in both of the first storage device and the second storage device, determining one of the first storage device and the second storage device as the target storage device for the second read request by:

comparing the first reliability for the first storage device and the second reliability for the second storage device with the first threshold reliability, respectively; and

in response to the first reliability being higher than the first threshold reliability and the second reliability being lower than the first threshold reliability, determining the first storage device as the target storage device for the second read request.

13. The device of claim 9 , wherein selecting one of the first storage device and the second storage device as the target storage device comprises:

in response to the first reliability being higher than the second threshold reliability and the second reliability being lower than the second threshold reliability,

determining a load difference between the first storage device and the second storage device, based on the first access load and the second access load;

in response to the load difference being less than a first threshold difference, determining the first storage device as the target storage device; and

in response to the load difference being greater than the first threshold difference, determining the target storage device from the first storage device and the second storage device, the target storage device being different from a storage device corresponding to a previous read operation on the target data.

14. The device of claim 9 , wherein selecting one of the first storage device and the second storage device as the target storage device comprises:

in response to both the first reliability and the second reliability being higher or lower than the second threshold reliability,

determining a load difference between the first storage device and the second storage device, based on the first access load and the second access load;

in response to the load difference being larger than a second threshold difference, determining a storage device with low access load from the first storage device and the second storage device as the target storage device; and

in response to the load difference being less than the first threshold difference, determining the target storage device from the first storage device and the second storage device, the

target storage device being different from a storage device corresponding to a previous read operation on the target data.

15. The device of claim 9 , wherein the acts further comprise:

receiving the read request for the target data while copying data from a source storage region of the first storage device to a destination storage region of the second storage device;

wherein determining that the target data is stored in both the first storage device and the second storage device comprises:

determining that the target data has been copied from the source storage region to the destination storage region.

16. The device of claim 15 , wherein determining that the target data has been copied from the source storage region to the destination storage region comprises:

determining an end position of copied data in the source storage region that has been copied to the destination storage region; and

in response to an end position of the target data in the source storage region preceding the end position of the data that has been copied to the destination storage region, determining that the target data has been copied to the destination storage region.

17. A computer program product having a non-transitory computer readable medium which stores a set of instructions to read data; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:

in response to receiving a read request for target data, determining that the target data is stored in both a first storage device and a second storage device;

determining at least one of reliability and access load for each of the first storage device and the second storage device; and

determining, based on the at least one of the reliability and the access load, one of the first storage device and the second storage device as a target storage device so as to respond to the read request;

wherein determining one of the first storage device and the second storage device as the target storage device comprises:

comparing first reliability for the first storage device and second reliability for the second storage device with first threshold reliability; and

in response to both the first reliability and the second reliability being higher than the first threshold reliability, determining the target storage device based on the first reliability, the second reliability, first access load for the first storage device and second access load for the second storage device; and

wherein determining the target storage device based on the first reliability, the second reliability, the first access load and the second access load comprises:

comparing the first reliability and the second reliability with second threshold reliability respectively, the second threshold reliability being higher than the first threshold reliability; and

based on a result of comparing the first reliability and the second reliability with second threshold reliability, selecting one of the first storage device and the second storage device as the target storage device.

18. The method of claim 1 , further comprising:

deriving the first reliability based on a first error input/output (I/O) count for the first storage device; and

deriving the second reliability based on a second error I/O count for the second storage device.

19. The device of claim 9 , wherein the acts further comprise:

deriving the first reliability based on a first error input/output (I/O) count for the first storage device; and

deriving the second reliability based on a second error I/O count for the second storage device.

20. The computer program product of claim 17 , wherein the method further comprises:

deriving the first reliability based on a first error input/output (I/O) count for the first storage device; and

deriving the second reliability based on a second error I/O count for the second storage device.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0571) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0088 →
RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058213/0825 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0571 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050406/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2019
From: GAO, HONGPO; GAO, JIAN; XU, XINLEI; HAN, GENG; KANG, JIANBIN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 050049/0510 →