IP Library Granted Patent US 11,360,691
Granted Patent B2
US 11,360,691 · App. 16/897,388 · Granted Jun 14, 2022

Garbage collection in a storage system at sub-virtual block granularity level

Inventors: Alex Soukhman (Raanana, IL); Uri Shabi (Tel Mond, IL)
Assignee: EMC IP Holding Company LLC
G06F3/0652G06F3/064G06F3/0608G06F3/0673G06F12/10G06F2212/657
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,360,691
App. No.
16/897,388
Granted
Jun 14, 2022
Kind
B2
Abstract

At least one processing device is configured to select a virtual block corresponding to a physical block in a storage system, wherein the virtual block comprises a plurality of pages with one or more pages of the virtual block respectively pointing to one or more data portions in the physical block. The at least one processing device is also configured to identify a target physical block and one or more virtual blocks corresponding to the target physical block. The at least one processing device is further configured to move at least one data portion from the physical block to the target physical block. Still further, the at least one processing device is configured to redirect the at least one page of the virtual block corresponding to the at least one moved data portion to one of the one or more virtual blocks corresponding to the target physical block.

Claims (52)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured to:

select a first one of a plurality of virtual blocks corresponding to a first one of a plurality of physical blocks in a storage system, wherein the first virtual block comprises a plurality of pages with at least a first one of the plurality pages of the first virtual block pointing to at least a first data portion in the first physical block and at least a second one of the plurality of pages of the first virtual block pointing to at least a second data portion in at least a second one of the plurality of physical blocks in the storage system;

identify a target one of the plurality of physical blocks other than the first physical block and one or more additional ones of the plurality of virtual blocks corresponding to the target physical block;

move the first data portion from the first physical block to the target physical block; and

redirect the first page of the first virtual block corresponding to the first data portion moved from the first physical block to the target physical block to one of the one or more additional ones of the plurality of virtual blocks corresponding to the target physical block.

2. The apparatus of claim 1 , wherein the at least one processing device is further configured to, for the second page of the first virtual block pointing to the second data portion in the first physical block:

identify another target one of the plurality of physical blocks other than the second physical block and one or more other additional ones of the plurality of virtual blocks corresponding to the other target physical block;

move the second data portion from the second physical block to the other target physical block; and

redirect the second page of the first virtual block corresponding to the second data portion moved from the second physical block to the other target physical block to one of the one or more other additional ones of the plurality of virtual blocks corresponding to the other target physical block.

3. The apparatus of claim 2 , wherein the target physical block and the other target physical block comprise a same physical block in the storage system.

4. The apparatus of claim 1 , wherein the at least one processing device is further configured to make available one or more of the first page of the first virtual block and the first data portion of the first physical block for use in a subsequent storage request.

5. The apparatus of claim 1 , wherein each of the plurality of virtual blocks comprises at least three pages.

6. The apparatus of claim 1 , wherein the storage system comprises a log structured storage system.

7. The apparatus of claim 1 , wherein the at least one processing device is further configured to, for a third one of the plurality of pages of the first virtual block pointing to a third data portion in the first physical block:

identify another target one of the plurality of physical blocks other than the first physical block and one or more other additional ones of the plurality of virtual blocks corresponding to the other target physical block;

move the third data portion from the first physical block to the other target physical block; and

redirect the third page of the first virtual block corresponding to the third data portion moved from the first physical block to the other target physical block to one of the one or more other additional ones of the plurality of virtual blocks corresponding to the other target physical block.

8. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device to perform steps of:

selecting a first one of a plurality of virtual blocks corresponding to a first one of a plurality of physical blocks in a storage system, wherein the first virtual block comprises a plurality of pages with at least a first one of the plurality pages of the first virtual block pointing to at least a first data portion in the first physical block and at least a second one of the plurality of pages of the first virtual block pointing to at least a second data portion in at least a second one of the plurality of physical blocks in the storage system;

identifying a target one of the plurality of physical blocks other than the first physical block and one or more additional ones of the plurality of virtual blocks corresponding to the target physical block;

moving the first data portion from the first physical block to the target physical block; and

redirecting the first page of the first virtual block corresponding to the first data portion moved from the first physical block to the target physical block to one of the one or more additional ones of the plurality of virtual blocks corresponding to the target physical block.

9. The computer program product of claim 8 , wherein the program code when executed by the at least one processing device causes the at least one processing device to further perform steps of, for the second page of the first virtual block pointing to the second data portion in the first physical block:

identifying another target one of the plurality of physical blocks other than the second physical block and one or more other additional ones of the plurality of virtual blocks corresponding to the other target physical block;

moving the second data portion from the second physical block to the other target physical block; and

redirecting the second page of the first virtual block corresponding to the second data portion moved from the second physical block to the other target physical block to one of the one or more other additional ones of the plurality of virtual blocks corresponding to the other target physical block.

10. The computer program product of claim 8 , wherein the program code when executed by the at least one processing device causes the at least one processing device to further perform the step of making available one or more of the first page of the first virtual block and the first data portion of the first physical block for use in a subsequent storage request.

11. The computer program product of claim 8 , wherein each of the plurality of virtual blocks comprises at least three pages.

12. The computer program product of claim 8 , wherein the storage system comprises a log structured storage system.

13. The computer program product of claim 8 , wherein the target physical block and the other target physical block comprise a same physical block in the storage system.

14. The computer program product of claim 8 , wherein the program code when executed by the at least one processing device causes the at least one processing device to further perform steps of, for a third one of the plurality of pages of the first virtual block pointing to a third data portion in the first physical block:

identifying another target one of the plurality of physical blocks other than the first physical block and one or more other additional ones of the plurality of virtual blocks corresponding to the other target physical block;

moving the third data portion from the first physical block to the other target physical block; and

redirecting the third page of the first virtual block corresponding to the third data portion moved from the first physical block to the other target physical block to one of the one or more other additional ones of the plurality of virtual blocks corresponding to the other target physical block.

15. A method comprising steps of:

selecting a first one of a plurality of virtual blocks corresponding to a first one of a plurality of physical blocks in a storage system, wherein the first virtual block comprises a plurality of pages with at least a first one of the plurality pages of the first virtual block pointing to at least a first data portion in the first physical block and at least a second one of the plurality of pages of the first virtual block pointing to at least a second data portion in at least a second one of the plurality of physical blocks in the storage system;

identifying a target one of the plurality of physical blocks other than the first physical block and one or more additional ones of the plurality of virtual blocks corresponding to the target physical block;

moving the first data portion from the first physical block to the target physical block; and

redirecting the first page of the first virtual block corresponding to the first data portion moved from the first physical block to the target physical block to one of the one or more additional ones of the plurality of virtual blocks corresponding to the target physical block.

16. The method of claim 15 , further comprising, for the second page of the first virtual block pointing to the second data portion in the first physical block:

identifying another target one of the plurality of physical blocks other than the second physical block and one or more other additional ones of the plurality of virtual blocks corresponding to the other target physical block;

moving the second data portion from the second physical block to the other target physical block; and

redirecting the second page of the first virtual block corresponding to the second data portion moved from the second physical block to the other target physical block to one of the one or more other additional ones of the plurality of virtual blocks corresponding to the other target physical block.

17. The method of claim 15 , further comprising making available one or more of the first page of the first virtual block and the first data portion of the first physical block for use in a subsequent storage request.

18. The method of claim 15 , wherein each of the plurality of virtual blocks comprises at least three pages.

19. The method of claim 15 , wherein the target physical block and the other target physical block comprise a same physical block in the storage system.

20. The method of claim 15 , further comprising, for a third one of the plurality of pages of the first virtual block pointing to a third data portion in the first physical block:

identifying another target one of the plurality of physical blocks other than the first physical block and one or more other additional ones of the plurality of virtual blocks corresponding to the other target physical block;

moving the third data portion from the first physical block to the other target physical block; and

redirecting the third page of the first virtual block corresponding to the third data portion moved from the first physical block to the other target physical block to one of the one or more other additional ones of the plurality of virtual blocks corresponding to the other target physical block.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 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 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 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 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 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 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2020
From: SOUKHMAN, ALEX; SHABI, URI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052892/0394 →