IP Library Granted Patent US 11,711,204
Granted Patent B2
US 11,711,204 · App. 16/776,129 · Granted Jul 25, 2023

Using sparse merkle trees for smart synchronization of S3

Inventors: Alex Solan (Hertzelia, IL); Jehuda Shemer (Kfar Saba, IL)
Assignee: EMC IP HOLDING COMPANY LLC
H04L9/0643G06F16/2246G06F16/2255
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,711,204
App. No.
16/776,129
Granted
Jul 25, 2023
Kind
B2
Abstract

One example method, which may be performed in connection with an object store, includes receiving a key of a key-value pair, correlating the key to a location in a base of a Merkle tree, inserting the key at the location, hashing the value associated with the key to produce a data hash, and inserting the data hash in the Merkle tree. The Merkle tree may then be checked for consistency, and synchronized with another Merkle tree. The Merkle tree may be of a fixed size, and insertion of the key in the Merkle tree does not change the location of any keys existing in the Merkle tree prior to insertion of the new key.

Claims (34)

1. A method, comprising:

receiving a key of a key-value pair;

correlating the key to a location in a base of a Merkle tree based on a hash of the key;

after the correlating is performed, inserting the hash of the key at the location;

hashing a value associated with the key to produce a data hash;

inserting the data hash in the Merkle tree; and

updating the Merkle tree,

wherein updating the Merkle tree comprises calculating any hashes, which include a root hash of the Merkle tree, affected by insertion of the data hash, and

wherein insertion of the hash at the location does not change a location of a hash of another key present in the base of the Merkle tree when the hash was inserted.

2. The method as recited in claim 1 , wherein correlating the key to a location comprises hashing the key and determining the location based on the hash of the key.

3. The method as recited in claim 1 , wherein the Merkle tree is a sparse Merkle tree.

4. The method as recited in claim 1 , wherein the value of the key-value pair comprises an object.

5. The method as recited in claim 1 , wherein the Merkle tree comprises a map of objects of a dataset.

6. The method as recited in claim 1 , wherein the method is performed in response to an IO written to a dataset.

7. The method as recited in claim 1 , wherein the Merkle tree corresponds to a dataset of unordered objects.

8. The method as recited in claim 1 , wherein the Merkle tree is a non-binary tree.

9. The method as recited in claim 1 , further comprising performing a consistency check of the Merkle tree, and synchronizing the Merkle tree with another Merkle tree.

10. A non-transitory storage medium having stored therein instructions that are executable by one or more hardware processors to perform operations comprising:

receiving a key of a key-value pair;

correlating the key to a location in a base of a Merkle tree based on a hash of the key;

after the correlating is performed, inserting the hash of the key at the location;

hashing the value associated with the key to produce a data hash;

inserting the data hash in the Merkle tree; and

updating the Merkle tree,

wherein updating the Merkle tree comprises calculating any hashes, which includes a root hash of the Merkle tree, affected by insertion of the data hash, and

wherein insertion of the hash at the location does not change a location of a hash of another key present in the base of the Merkle tree when the hash was inserted.

11. The non-transitory storage medium as recited in claim 10 , wherein correlating the key to a location comprises hashing the key and determining the location based on the hash of the key.

12. The non-transitory storage medium as recited in claim 10 , wherein the Merkle tree is a sparse Merkle tree.

13. The non-transitory storage medium as recited in claim 10 , wherein the value of the key-value pair comprises an object.

14. The non-transitory storage medium as recited in claim 10 , wherein the Merkle tree comprises a map of objects of a dataset.

15. The non-transitory storage medium as recited in claim 10 , wherein the operations are performed in response to an IO written to a dataset.

16. The non-transitory storage medium as recited in claim 10 , wherein the Merkle tree corresponds to a dataset of unordered objects.

17. The non-transitory storage medium as recited in claim 10 , wherein the Merkle tree is a non-binary tree.

18. The non-transitory storage medium as recited in claim 10 , wherein the operations further comprise performing a consistency check of the Merkle tree, and synchronizing the Merkle tree with another Merkle tree.

Assignments (9)
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 IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) 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 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
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 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 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 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 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: SOLAN, ALEX; SHEMER, JEHUDA
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051662/0219 →