IP Library Granted Patent US 11,381,400
Granted Patent B2
US 11,381,400 · App. 16/905,206 · Granted Jul 5, 2022

Using double hashing schema to reduce short hash handle collisions and improve memory allocation in content-addressable storage systems

Inventors: Kirill Shoikhet (Raanana, IL); Gilad Braunschvig (Tel Aviv, IL); Eldad Zinger (Raanana, IL); Kobi Luz (Rehovot, IL); Zvi Schneider (Tel Aviv, IL)
Assignee: EMC IP Holding Company LLC
H04L9/3242G06F12/1408H04L9/3247G06F2212/1052
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,381,400
App. No.
16/905,206
Granted
Jul 5, 2022
Kind
B2
Abstract

Example embodiments of the present invention relate and a method and an apparatus for double hashing. The method including receiving a hash signature, including a short hash handle, for a data block. The method then includes determining a bucket with which the hash signature should be associated and associating the hash signature with the bucket.

Claims (48)

1. A method comprising:

obtaining a hash handle comprising a portion that identifies a given indicator of a plurality of indicators of a hash signature, each indicator of the hash signature corresponding to one of a plurality of data structures, each data structure comprising mappings of hash signatures to physical addresses on at least one storage device of a storage system;

selecting the given indicator based at least in part on the portion of the hash handle;

identifying a mapping between the hash signature and one or more of the physical addresses based at least in part on the data structure that corresponds to the given indicator; and

obtaining data from the one or more of the physical addresses based at least in part on the identified mapping;

wherein the data structures comprise respective buckets;

wherein each indicator identifies a particular one of the buckets and comprises at least a portion of one or more bytes of the hash signature;

wherein the plurality of indicators comprise at least a first indicator and a second indicator identifying respective first and second ones of the buckets, the given indicator being one of the first indicator and the second indicator;

wherein the first indicator comprises at least a portion of a first byte of the hash signature and the second indicator comprises at least a portion of a second byte of the hash signature;

wherein the second byte is different than the first byte; and

wherein the method is implemented by a processing device comprising a processor coupled to a memory.

2. The apparatus of claim 1 wherein the first indicator comprises a first byte of the hash signature and the second indicator comprises a second byte of the hash signature that is different than the first byte of the hash signature.

3. The method of claim 2 wherein the hash handle comprises a third byte of the hash signature and the first and second bytes are different than the third byte.

4. The method of claim 1 wherein the data structure corresponding to one of the indicators that is not identified by the portion of the hash handle comprises a second hash signature that is associated with the obtained hash handle.

5. The method of claim 1 wherein identifying the mapping between the hash signature and the one or more of the physical addresses based at least in part on the data structure that corresponds to the given indicator comprises identifying an entry in the data structure corresponding to the hash signature, the entry comprising the mapping between the hash signature and the one or more of the physical addresses, and identifying the mapping based at least in part on the identified entry.

6. The method of claim 1 wherein the plurality of data structures comprises a plurality of additional buckets, each additional indicator of the plurality of indicators corresponding to one of the plurality of additional buckets.

7. The method of claim 1 wherein the at least one storage device of the storage system comprises a de-duplication storage device.

8. An apparatus comprising:

a processing device comprising a processor coupled to memory, the processing device being configured:

to obtain a hash handle comprising a portion that identifies a given indicator of a plurality of indicators of a hash signature, each indicator of the hash signature corresponding to one of a plurality of data structures, each data structure comprising mappings of hash signatures

to physical addresses on at least one storage device of a storage system; to select the given indicator based at least in part on the portion of the hash handle;

to identify a mapping between the hash signature and one or more of the physical addresses based at least in part on the data structure that corresponds to the given indicator; and

to obtain data from the one or more of the physical addresses based at least in part on the identified mappings wherein the data structures comprise respective buckets;

wherein each indicator identifies a particular one of the buckets and comprises at least a portion of one or more bytes of the hash signature;

wherein the plurality of indicators comprise at least a first indicator and a second indicator identifying respective first and second ones of the buckets, the given indicator being one of the first indicator and the second indicator;

wherein the first indicator comprises at least a portion of a first byte of the hash signature and the second indicator comprises at least a portion of a second byte of the hash signature; and

wherein the second byte is different than the first byte.

9. The apparatus of claim 8 wherein the first indicator comprises a first byte of the hash signature and the second indicator comprises a second byte of the hash signature that is different than the first byte of the hash signature.

10. The apparatus of claim 9 , wherein the hash handle comprises a third byte of the hash signature and the first and second bytes are different than the third byte.

11. The apparatus of claim 8 wherein the data structure corresponding to one of the indicators that is not identified by the portion of the hash handle comprises a second hash signature that is associated with the obtained hash handle.

12. The apparatus of claim 8 wherein identifying the mapping between the hash signature and the one or more of the physical addresses based at least in part on the data structure that corresponds to the given indicator comprises identifying an entry in the data structure corresponding to the hash signature, the entry comprising the mapping between the hash signature and the one or more of the physical addresses, and identifying the mapping based at least in part on the identified entry.

13. The apparatus of claim 8 wherein the plurality of data structures comprises a plurality of additional buckets, each additional indicator of the plurality of indicators corresponding to one of the plurality of additional buckets.

14. The apparatus of claim 8 wherein the at least one storage device of the storage system comprises a de-duplication storage device.

15. 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 a processing device comprising a processor coupled to memory, causes the processing device:

to obtain a hash handle comprising a portion that identifies a given indicator of a plurality of indicators of a hash signature, each indicator of the hash signature corresponding to one of a plurality of data structures, each data structure comprising mappings of hash signatures to physical addresses on at least one storage device of a storage system;

to select the given indicator based at least in part on the portion of the hash handle;

to identify a mapping between the hash signature and one or more of the physical addresses based at least in part on the data structure that corresponds to the given indicator; and

to obtain data from the one or more of the physical addresses based at least in part on the identified mapping,

wherein the data structures comprise respective buckets;

wherein each indicator identifies a particular one of the buckets and comprises at least a portion of one or more bytes of the hash signature; and

wherein the plurality of indicators comprise at least a first indicator and a second indicator identifying respective first and second ones of the buckets, the given indicator being one of the first indicator and the second indicator;

wherein the first indicator comprises at least a portion of a first byte of the hash signature and the second indicator comprises at least a portion of a second byte of the hash signature; and

wherein the second byte is different than the first byte.

16. The apparatus of claim 15 wherein the first indicator comprises a first byte of the hash signature and the second indicator comprises a second byte of the hash signature that is different than the first byte of the hash signature.

17. The computer program product of claim 16 wherein the hash handle comprises a third byte of the hash signature and the first and second bytes are different than the third byte.

18. The computer program product of claim 15 wherein the data structure corresponding to one of the indicators that is not identified by the portion of the hash handle comprises a second hash signature that is associated with the obtained hash handle.

19. The computer program product of claim 15 wherein identifying the mapping between the hash signature and the one or more of the physical addresses based at least in part on the data structure that corresponds to the given indicator comprises identifying an entry in the data structure corresponding to the hash signature, the entry comprising the mapping between the hash signature and the one or more of the physical addresses, and identifying the mapping based at least in part on the identified entry.

20. The computer program product of claim 15 wherein the plurality of data structures comprises a plurality of additional buckets, each additional indicator of the plurality of indicators corresponding to one of the plurality of additional buckets.

Assignments (9)
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 (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 (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 18, 2020
From: SHOIKHET, KIRILL; BRAUNSCHVIG, GILAD; ZINGER, ELDAD; LUZ, KOBI; SCHNEIDER, ZVI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052979/0180 →