IP Library Granted Patent US 10,133,770
Granted Patent B2
US 10,133,770 · App. 15/193,141 · Granted Nov 20, 2018

Copying garbage collector for B+ trees under multi-version concurrency control

Inventors: Mikhail Danilov (Saint Petersburg, RU); Mikhail Malygin (Saint Petersburg, RU); Ivan Tchoub (Saint Petersburg, RU); Chen Wang (Shanghai, CN); Shashwat Srivastav (Seattle, WA); Andrey Fomin (Vesevolozhsk, RU)
Assignee: EMC IP HOLDING COMPANY LLC
G06F17/30371G06F3/067G06F3/0608G06F3/0652G06F17/30312
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 10,133,770
App. No.
15/193,141
Granted
Nov 20, 2018
Kind
B2
Abstract

Structures and processes for garbage collection of search trees under Multi-Version Concurrency Control (MVCC). Such search trees may be used to store data within a distributed storage system. A process detects live search tree elements using tracing and then identify storage chunks having no live elements as garbage to be reclaimed. The process can be paused and resumed to reduce impact on other system processing. To reduce disk fragmentation, a garbage collector may copy pages between chunks prior to reclaiming chunk capacity. Also described is a resource efficient scheduler for a garbage collection.

Claims (36)

1. A method for use with a distributed storage system comprising a plurality of storage devices, the method comprising:

traversing a plurality of search trees to identify one or more elements stored in underpopulated storage chunks of the distributed storage system;

generating a plurality of copy requests corresponding to the identified elements, each of the copy requests corresponding to a different respective one of the identified elements;

merging the plurality of copy requests with one or more co-pending data update requests, the merging including discarding a copy request from the plurality of copy requests in response to detecting that the copy request corresponds to an element that is due to be modified by one of the co-pending data update requests;

executing any remaining, copy requests in the plurality of copy requests by copying respective ones of the identified elements that correspond to the remaining copy requests from the underpopulated storage chunks to different storage chunks; and

reclaiming storage capacity corresponding to the underpopulated storage chunks.

2. The method of claim 1 wherein modifying the element by one of the co-pending data update requests includes at least one of updating the element and dereferencing the element.

3. The method of claim 1 wherein traversing the plurality of search trees to identify one or more elements in underpopulated storage chunks comprises detecting whether any storage chunk in the distributed storage system is underpopulated based on whether a capacity of the storage chunk meets a predetermined threshold.

4. The method of claim 1 , wherein the traversing of the plurality of search trees is interrupted when a predetermined number of elements stored in underpopulated storage chunks have been identified.

5. The method of claim 1 further comprising:

determining a number of unused storage chunks;

determining a number of underpopulated storage chunks; and

wherein the storage capacity corresponding to the underpopulated storage chunks is reclaimed based upon the number of unused storage chunks and the number of underpopulated storage chunks.

6. The method of claim 5 wherein the search trees include search trees associated with multiple different replication groups, wherein determining a number of unused storage chunks comprises determining a number of unused storage chunks associated with all search trees associated with the same replication group.

7. The method of claim 6 wherein determining a number of underpopulated storage chunks comprises determining a number of underpopulated storage chunks associated with all search trees associated with the same replication group.

8. The method of claim 6 wherein reclaiming storage capacity comprises reclaiming storage capacity for storage chunks associated with search trees in the same replication group.

9. The method of claim 5 wherein determining a number of underpopulated storage chunks comprises determining a number of underpopulated storage chunks having an age greater than a predetermined threshold age.

10. A distributed storage system comprising:

a plurality of storage devices;

two or more storage nodes configured to:

traverse a plurality of search trees to identify one or more elements stored in underpopulated storage chunks of the distributed storage system;

generate a plurality of copy requests corresponding to the identified elements, each of the copy requests corresponding to a different respective one of the identified elements;

merge the plurality of copy requests with one or more co-pending data update requests by discarding a copy request from the plurality of copy requests in response to detecting that the copy request corresponds to an element that is due to be modified by one of the co-pending data update requests;

execute any remaining copy requests in the plurality of copy requests by copying respective ones of the identified elements that correspond to the remaining copy requests from the underpopulated storage chunks to different storage chunks; and

reclaim storage capacity corresponding to the underpopulated storage chunks.

11. The system of claim 10 wherein modifying the element by one of the co-pending data update requests includes at least one of updating the element and dereferencing the element.

12. The system of claim 10 wherein traversing the plurality of search trees to identify elements stored within underpopulated storage chunks include detecting whether any storage chunk in the distributed storage system is underpopulated based on whether a capacity of the storage chunk meets a predetermined threshold.

13. The system of claim 10 wherein the traversal of the plurality of search trees is interrupted when a predetermined number of elements stored in underpopulated storage chunks have been identified.

14. The system of claim 10 wherein the storage nodes are further configured to:

determine a number of unused storage chunks;

determine a number of underpopulated storage chunks; and

wherein the storage capacity corresponding to the underpopulated storage chunks is reclaimed based upon the number of unused storage chunks and the number of underpopulated storage chunks.

15. The system of claim 14 wherein the storage nodes include a first pair of storage nodes in a first replication group and second pair of storage nodes in a second replication group, wherein the search trees include search trees associated with multiple different replication groups, and wherein the storage nodes are configured to determine a number of unused storage chunks for all search trees associated with the same replication group.

16. The system of claim 15 wherein the storage nodes are configured to determine a number of underpopulated storage chunks for all search trees associated with the same replication group.

17. The system of claim 15 wherein the storage nodes are configured to reclaim storage capacity for storage chunks associated with search trees in the same replication group.

18. The system of claim 14 wherein the storage nodes are configured to determine a number of underpopulated storage chunks having an age greater than a predetermined threshold age.

Assignments (5)
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 →
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 →
SECURITY AGREEMENT Recorded Mar 21, 2019
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 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041872/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2016
From: DANILOV, MIKHAIL; MALYGIN, MIKHAIL; TCHOUB, IVAN; WANG, CHEN; SRIVASTAV, SHASHWAT; FOMIN, ANDREY
To: EMC CORPORATION
Reel/Frame 039301/0125 →
Priority Claims (1)
RU 2015153847 · Dec 16, 2015 · national
Continuity (1)
Related Publication 20170177652A1 · Jun 22, 2017