IP Library Granted Patent US 11,157,198
Granted Patent B2
US 11,157,198 · App. 16/817,207 · Granted Oct 26, 2021

Generating merge-friendly sequential IO patterns in shared logger page descriptor tiers

Inventors: Chun Ma (Beijing, CN); Socheavy Heng (Framingham, MA); Geng Han (Beijing, CN); Hongpo Gao (Beijing, CN); Shaoqin Gong (Beijing, CN); Jian Gao (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F3/0655G06F3/061G06F3/0679
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,157,198
App. No.
16/817,207
Granted
Oct 26, 2021
Kind
B2
Abstract

Techniques for generating merge-friendly sequential IO patterns in shared logger page descriptor (PD) tiers. The techniques can be employed in an active-active clustered system that includes a primary storage node, a secondary storage node, a logger shared between the primary and secondary storage nodes, and a storage device such as a non-volatile memory (NVM) device. The techniques can include allocating at least a first trunk and a second trunk in a shared PD tier of the logger, sequentially writing PD metadata and/or data by the primary storage node and the secondary storage node to the first trunk and the second trunk, respectively, merging the PD metadata/data units sequentially written to each respective trunk together to obtain PD metadata/data having an increased size up to the size of the respective trunks, and storing the merged PD metadata/data to the NVM device.

Claims (52)

1. A method of generating merge-friendly sequential input/output (IO) patterns in a shared page descriptor (PD) tier, comprising:

allocating at least a first trunk and a second trunk in a shared PD tier of a logger, wherein the first trunk and the second trunk are different trunks;

sequentially writing first PD metadata and/or data by a primary storage node IQ the first trunk, and sequentially writing second PD metadata and/or data by a secondary storage node to the second trunk;

merging the first PD metadata and/or data sequentially written to the first trunk to obtain first merged PD metadata and/or data, and merging the second PD metadata and/or data sequentially written to the second trunk to obtain second merged PD metadata and/or data; and

storing the first merged PD metadata and/or data and the second merged PD metadata and/or data to a non-volatile memory (NVM) device.

2. The method of claim 1 , wherein the first trunk has an associated head pointer and an associated tail pointer, and wherein sequentially writing the first PD metadata and/or data to the first trunk includes writing the first PD metadata and/or data to a head of the first trunk.

3. The method of claim 2 , wherein the second trunk has an associated head pointer and an associated tail pointer, and wherein sequentially writing the second PD metadata and/or data to the second trunk includes writing the second PD metadata and/or data to a head of the second trunk.

4. The method of claim 1 , further comprising:

in response to the first trunk having reached its storage capacity, allocating a third trunk in the shared PD tier of the logger; and

sequentially writing, by the primary storage node, third PD metadata and/or data to the third trunk.

5. The method of claim 4 , further comprising:

in response to the second trunk having reached its storage capacity, allocating a fourth trunk in the shared PD tier of the logger; and

sequentially writing, by the secondary storage node, fourth PD metadata and/or data to the fourth trunk.

6. The method of claim 1 , further comprising:

pushing the first PD metadata and/or data sequentially written to the first trunk to a first IO queue,

wherein merging the first PD metadata and/or data includes merging the first PD metadata and/or data in the first IO queue to obtain the first merged PD metadata and/or data.

7. The method of claim 6 , further comprising:

pushing the second PD metadata and/or data sequentially written to the second trunk to a second IO queue,

wherein merging the second PD metadata and/or data further includes merging the second PD metadata and/or data in the second IO queue to obtain the second merged PD metadata and/or data.

8. The method of claim 7 , wherein storing the first merged PD metadata and/or data and the second merged PD metadata and/or data includes storing the first merged PD metadata and/or data from the first IO queue to the NVM device, and storing the second merged PD metadata and/or data from the second IO queue to the NVM device.

9. The method of claim 1 , further comprising:

obtaining, by the secondary storage node, authorization from the primary storage node to write the second PD metadata and/or data to the shared PD tier of the logger.

10. The method of claim 9 , wherein allocating the second trunk in the shared PD tier of the logger includes allocating the second trunk in the shared PD tier in response to the authorization from the primary storage node being obtained.

11. An active-active clustered system, comprising:

a primary storage node;

a secondary storage node different from the primary storage node;

a first IO queue;

a second IO queue;

a logger including a shared page descriptor (PD) tier; and

a non-volatile memory (NVM) device,

wherein the primary storage node is configured to allocate at least a first trunk and a second trunk in the shared PD tier of the logger, and to sequentially write first PD metadata and/or data to the first trunk, wherein the first trunk and the second trunk are different trunks,

wherein the secondary storage node is configured to sequentially write second PD metadata and/or data to the second trunk,

wherein the logger is configured to be controlled for pushing the first PD metadata and/or data from the first trunk to the first IO queue, and for pushing the second PD metadata and/or data from the second trunk to the second IO queue,

wherein the first IO queue is configured to be controlled for merging the first PD metadata and/or data pushed from the first trunk to obtain first merged PD metadata and/or data, and for storing the first merged PD metadata and/or data to the NVM device, and

wherein the second IO queue is configured to be controlled for merging the second PD metadata and/or data pushed from the second trunk to obtain second merged PD metadata and/or data, and for storing the second merged PD metadata and/or data to the NVM device.

12. The system of claim 11 , wherein the first trunk has an associated head pointer and an associated tail pointer, and wherein the primary storage node is further configured to write the first PD metadata and/or data to a head of the first trunk.

13. The system of claim 12 , wherein the second trunk has an associated head pointer and an associated tail pointer, and wherein the secondary storage node is further configured to write the second PD metadata and/or data to a head of the second trunk.

14. The system of claim 11 , wherein the primary storage node is further configured, in response to the first trunk having reached its storage capacity, to allocate a third trunk in the shared PD tier of the logger, and to sequentially write third PD metadata and/or data to the third trunk.

15. The system of claim 14 , wherein the primary storage node is further configured, in response to the second trunk having reached its storage capacity, to allocate a fourth trunk in the shared PD tier of the logger.

16. The system of claim 15 , wherein the secondary storage node is further configured to sequentially write fourth PD metadata and/or data to the fourth trunk.

17. A computer program product including a set of non-transitory, computer-readable media having instructions that, when executed by storage processing circuitry, cause the storage processing circuitry to perform a method comprising:

allocating at least a first trunk and a second trunk in a shared page descriptor (PD) tier of a logger, wherein the first trunk and the second trunk are different trunks;

sequentially writing first PD metadata and/or data by a primary storage node to the first trunk, and sequentially writing second PD metadata and/or data by a secondary storage node to the second trunk;

merging the first PD metadata and/or data sequentially written to the first trunk to obtain first merged PD metadata and/or data, and merging the second PD metadata and/or data sequentially written to the second trunk to obtain second merged PD metadata and/or data; and

storing the first merged PD metadata and/or data and the second merged PD metadata and/or data to a non-volatile memory (NVM) device.

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

pushing the first PD metadata and/or data sequentially written to the first trunk to a first IO queue,

wherein merging the first PD metadata and/or data includes merging the first PD metadata and/or data in the first IO queue to obtain the first merged PD metadata and/or data.

19. The computer program product of claim 18 , wherein the method further comprises:

pushing the second PD metadata and/or data sequentially written to the second trunk to a second IO queue,

wherein merging the second PD metadata and/or data further includes merging the second PD metadata and/or data in the second IO queue to obtain the second merged PD metadata and/or data.

20. The computer program product of claim 19 , wherein storing the first merged PD metadata and/or data and the second merged PD metadata and/or data includes storing the first merged PD metadata and/or data from the first IO queue to the NVM device, and storing the second merged PD metadata and/or data from the second IO queue to the NVM device.

Assignments (13)
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 (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 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 (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 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2020
From: MA, CHUN; HENG, SOCHEAVY; HAN, GENG; GAO, HONGPO; GONG, SHAOQIN; GAO, JIAN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052934/0427 →
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 →
Continuity (1)
Related Publication 20210286548A1 · Sep 16, 2021
Cited By (3)
US 12,197,757 US 12,339,781 US 12,411,620