IP Library Granted Patent US 10,146,697
Granted Patent B1
US 10,146,697 · App. 15/389,437 · Granted Dec 4, 2018

NUMA-aware perfect hash algorithm

Inventors: Abhinav Duggal (Santa Clara, CA); Tony Wong (Milpitas, CA)
Assignee: EMC IP Holding Company LLC
G06F12/1018G06F3/065G06F3/067G06F3/0608G06F3/0619G06F3/0641G06F12/0253
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,146,697
App. No.
15/389,437
Granted
Dec 4, 2018
Kind
B1
Abstract

Embodiments are directed to perfect physical garbage collection (PPGC) process that uses a NUMA-aware perfect hash vector. The process splits a perfect hash vector (PHVEC) into a number of perfect hash vectors, wherein the number corresponds to a number of nodes having a processing core and associated local memory, directs each perfect hash to a respective local memory of a node so that each perfect hash vector accesses only a local memory, and assigns fingerprints in the perfect hash vector to a respective node using a mask function. The process also performs a simultaneous creation of perfect hash vectors in a multi-threaded manner by scanning the Index once.

Claims (31)

1. A method comprising:

splitting a perfect hash vector (PHVEC) into a number of perfect hash vectors, wherein the number corresponds to a number of nodes having a processing core and associated local memory;

assigning each perfect hash vector of the number of perfect hash vectors to a respective local memory of a node so that each perfect hash vector accesses only the respective local memory; and

assigning fingerprints in each perfect hash vector to a respective node using a mask function.

2. The method of claim 1 wherein the PHVEC is used in a garbage collection process in a deduplication backup system implementing non-uniform memory access (NUMA) processes.

3. The method of claim 1 wherein the fingerprints are partitioned according to the number of NUMA nodes N in the system, and wherein each fingerprint is mapped to the NUMA node in accordance with an equation node=(FP mod N).

4. The method of claim 1 wherein fingerprints are assigned to a particular node using a mapping scheme based on the last two bits of an index (00, 01, 10, 11) created by walking a walk index to create the mask that is combined with the fingerprint.

5. The method of claim 1 wherein the PHVEC is internally subdivided into many smaller vectors denoted buckets, and wherein fingerprints are uniformly hashed into these buckets.

6. The method of claim 5 wherein the PHVEC is created in a single-threaded process wherein fingerprints from an index bucket are hashed into a number of perfect hash buckets based on a stride size of the PHVEC, and wherein the index bucket is read one stride at a time and all the fingerprints are sent to the PHVEC for creation.

7. The method of claim 6 wherein the stride is calculated by first calculating a total number of perfect hash buckets by a total number of fingerprints in the index divided by each perfect hash bucket size, and then dividing the total number of index buckets by the total number of perfect hash buckets.

8. The method of claim 7 wherein the PHVEC is created in a multi-threaded process comprising subdividing the index buckets in stride size units, and wherein at least one bucket is split between two threads to form partial strides, and wherein full strides are processed using the multi-threaded execution and the partial strides are processed using single-threaded execution.

9. The method of claim 1 wherein the PHVEC is used in a perfect physical garbage collection process maintaining a perfect hash live vector in a multi-field data structure including each perfect hash vector, and wherein the PHVEC is split into four perfect hash vectors.

10. The method of claim 9 further comprising combining the bucket access and header per bucket into a single cache line to reduce the four random memory accesses to three random memory accesses.

11. The method of claim 9 further comprising:

creating the PHVEC in a single-threaded process wherein fingerprints from an index bucket are hashed into a number of perfect hash buckets based on a stride size of the PHVEC, and wherein the index bucket is read one stride at a time and all the fingerprints are sent to the PHVEC for creation; and

making the perfect hash buckets NUMA-aware, so that there can be a copy of perfect hash buckets per NUMA node.

12. The method of claim 9 further comprising implementing multi-stride cache prefetching to prefetch all four memory locations to reduce the latency of lookup.

13. A system comprising:

a first component splitting a perfect hash vector (PHVEC) into a number of perfect hash vectors, wherein the number corresponds to a number of nodes having a processing core and associated local memory;

a second component assigning each perfect hash vector of the number of perfect hash vectors to a respective local memory of a node so that each perfect hash vector accesses only the respective local memory; and

a third component assigning fingerprints in each perfect hash vector to a respective node using a mask function.

14. The system of claim 13 wherein the PHVEC is used in a garbage collection process in a deduplication backup system implementing non-uniform memory access (NUMA) processes.

15. The system of claim 14 wherein the fingerprints are partitioned according to the number of NUMA nodes N in the system, and wherein each fingerprint is mapped to the NUMA node in accordance with an equation node=(FP mod N).

16. The system of claim 13 wherein fingerprints are assigned to a particular node using a mapping scheme based on the last two bits of an index (00, 01, 10, 11) created by walking a walk index to create the mask that is combined with the fingerprint.

17. The system of claim 13 wherein the PHVEC is internally subdivided into many smaller vectors denoted buckets, and wherein fingerprints are uniformly hashed into these buckets.

18. A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein, the computer-readable program code adapted to be executed by one or more processors to implement a method comprising:

splitting a perfect hash vector (PHVEC) into a number of perfect hash vectors, wherein the number corresponds to a number of nodes having a processing core and associated local memory;

assigning each perfect hash vector of the number of perfect hash vectors to a respective local memory of a node so that each perfect hash vector accesses only the respective local memory; and

assigning fingerprints in each perfect hash vector to a respective node using a mask function.

19. The computer program product of claim 18 wherein the PHVEC is used in a garbage collection process in a deduplication backup system implementing non-uniform memory access (NUMA) processes.

20. The computer program product of claim 19 wherein the fingerprints are partitioned according to the number of NUMA nodes N in the system, and wherein each fingerprint is mapped to the NUMA node in accordance with an equation node=(FP mod N).

Assignments (6)
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 048825 FRAME 0489 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 058000/0916 →
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 Apr 8, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 048825/0489 →
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 Sep 5, 2017
From: DUGGAL, ABHINAV; WONG, TONY
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 043489/0223 →
Continuity (1)
Provisional Application 62399685 · Sep 26, 2016