IP Library Granted Patent US 11,048,414
Granted Patent B2
US 11,048,414 · App. 16/780,315 · Granted Jun 29, 2021

Method and apparatus for managing data access

Inventors: Ruiyong Jia (Beijing, CN); Jian Gao (Beijing, CN); Lifeng Yang (Beijing, CN); Xinlei Xu (Beijing, CN); Jibing Dong (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F3/0611G06F3/064G06F3/0622G06F3/0647G06F3/0659G06F3/0667G06F3/0673
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,048,414
App. No.
16/780,315
Granted
Jun 29, 2021
Kind
B2
Abstract

A method and apparatus for managing data access comprises: receiving a write request for writing data into one or more storage blocks; in response to determining that a storage block is unavailable, writing a part of the data into a virtual storage block corresponding to the storage block, the part of the data being required to be written into the storage block; and in response to determining that the storage block becomes available, copying the part of the data from the virtual storage block to the storage block. The embodiments of the present disclosure further disclose a corresponding apparatus. By introducing the virtual storage blocks in the data access, the embodiments of the present disclosure can realize the parallel data transfers of a plurality of writes and thus greatly improve the data writing performance of the system.

Claims (41)

1. A method of managing data access, comprising:

receiving a first write request specifying a write of first data to a first range, the first range represented in a data cache by a first ordered series of cache logical pages (CLPs), each CLP including multiple cache pages configured to store continuous disk data;

receiving a second write request specifying a write of second data to a second range, the second range represented in the data cache by a second ordered series of CLPs, the first ordered series of CLPs at least partially overlapping the second ordered series of CLPs and forming a set of shared CLPs;

initiating processing in the data cache of the first write request and the second write request; and

while processing the second write request and in response to encountering a real CLP in the set of shared CLPs that is locked, (i) creating a virtual CLP for the real CLP and (ii) continuing to process the second write request by writing portions of the second data to the virtual CLP.

2. The method of claim 1 , wherein the virtual CLP manages a same disk range as the real CLP, and wherein the method further comprises, after the real CLP becomes unlocked, copying or merging contents of the virtual CLP into the real CLP.

3. The method of claim 1 ,

wherein the set of shared CLPs includes an ordered series of multiple shared CLPs,

wherein, when creating the virtual CLP, the method further comprises creating a set of additional virtual CLPs, the set of additional virtual CLPs including an additional virtual CLP for each CLP that follows the real CLP in the ordered series of shared CLPs, and

wherein continuing to process the second write request includes writing other portions of the second data to the plurality of additional virtual CLPs.

4. The method of claim 3 , further comprising exclusively locking each of ordered series of shared CLPs when accessing the respective CLPs for writing.

5. The method of claim 4 , further comprising arranging write requests for accessing a CLP in a waiting queue.

6. The method of claim 3 , wherein the ordered series of multiple shared CLPs maintain mappings between cache pages in the data cache and respective data on disks.

7. The method of claim 3 , wherein the ordered series of multiple shared correspond to respective LBA (logical block address) ranges.

8. An apparatus for managing data access, the apparatus comprising control circuitry configured to:

receive a first write request specifying a write of first data to a first range, the first range represented in a data cache by a first ordered series of cache logical pages (CLPs), each CLP including multiple cache pages configured to store continuous disk data;

receive a second write request specifying a write of second data to a second range, the second range represented in the data cache by a second ordered series of CLPs, the first ordered series of CLPs at least partially overlapping the second ordered series of CLPs and forming a set of shared CLPs;

initiate processing in the data cache of the first write request and the second write request; and

while processing the second write request and in response to encountering a real CLP in the set of shared CLPs that is locked, (i) create a virtual CLP for the real CLP and (ii) continue to process the second write request by writing portions of the second data to the virtual CLP.

9. The apparatus of claim 8 , wherein the virtual CLP is configured to manage a same disk range as the real CLP, and wherein the control circuitry is further configured to copy or merge contents of the virtual CLP into the real CLP after the real CLP becomes unlocked.

10. The apparatus of claim 8 ,

wherein the set of shared CLPs includes an ordered series of multiple shared CLPs,

wherein, when configured to create the virtual CLP, the control circuitry is further configured to create a set of additional virtual CLPs, the set of additional virtual CLPs including an additional virtual CLP for each CLP that follows the real CLP in the ordered series of shared CLPs, and

wherein the control circuitry configured to continue to process the second write request is further configured to write other portions of the second data to the plurality of additional virtual CLPs.

11. The apparatus of claim 10 , wherein the control circuitry is further configured to exclusively lock each of ordered series of shared CLPs when accessing the respective CLPs for writing.

12. The apparatus of claim 11 , wherein the control circuitry is further configured to arrange write requests for accessing a CLP in a waiting queue.

13. The apparatus of claim 10 , wherein the ordered series of multiple shared CLPs maintain mappings between cache pages in the data cache and respective data on disks.

14. A computer program product including a set of non-transitory, computer-readable storage media having computer-readable program instructions stored thereon which, when executed by a computer, cause the computer to perform a method of managing data access, the method comprising:

receiving a first write request specifying a write of first data to a first range, the first range represented in a data cache by a first ordered series of cache logical pages (CLPs), each CLP including multiple cache pages configured to store continuous disk data;

receiving a second write request specifying a write of second data to a second range, the second range represented in the data cache by a second ordered series of CLPs, the first ordered series of CLPs at least partially overlapping the second ordered series of CLPs and forming a set of shared CLPs;

initiating processing in the data cache of the first write request and the second write request; and

while processing the second write request and in response to encountering a real CLP in the set of shared CLPs that is locked, (i) creating a virtual CLP for the real CLP and (ii) continuing to process the second write request by writing portions of the second data to the virtual CLP.

15. The computer program product of claim 14 , wherein the virtual CLP manages a same disk range as the real CLP, and wherein the method further comprises, after the real CLP becomes unlocked, copying or merging contents of the virtual CLP into the real CLP.

16. The computer program product of claim 14 ,

wherein the set of shared CLPs includes an ordered series of multiple shared CLPs,

wherein, when creating the virtual CLP, the method further comprises creating a set of additional virtual CLPs, the set of additional virtual CLPs including an additional virtual CLP for each CLP that follows the real CLP in the ordered series of shared CLPs, and

wherein continuing to process the second write request includes writing other portions of the second data to the plurality of additional virtual CLPs.

17. The computer program product of claim 16 , wherein the method further comprises exclusively locking each of ordered series of shared CLPs when accessing the respective CLPs for writing.

18. The computer program product of claim 17 , wherein the method further comprises arranging write requests for accessing a CLP in a waiting queue.

19. The computer program product of claim 16 , wherein the ordered series of multiple shared CLPs maintain mappings between cache pages in the data cache and respective data on disks.

20. The computer program product of claim 16 , wherein the ordered series of multiple shared correspond to respective LBA (logical block address) ranges.

Assignments (13)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) 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 IP HOLDING COMPANY LLC
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) 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 IP HOLDING COMPANY LLC
Reel/Frame 060436/0582 →
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 (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 (052851/0081) 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 IP HOLDING COMPANY LLC
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
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 INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2020
From: JIA, RUIYONG; GAO, JIAN; YANG, LIFENG; XU, XINLEI; DONG, JIBING
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052150/0931 →