CLOUD STORAGE USING MERKLE TREES
First Claim
1. A data stream synchronization method, comprising:
- storing a data stream on a client side de-duplicating block store of a client device;
generating a data stream Merkle tree of the data stream;
storing a secure hash algorithm (SHA) key for the data stream Merkle tree, as well as the data stream Merkle tree on the client side de-duplicating block store;
recursively iterating through the data stream Merkle tree using an index of a snapshot Merkle tree of the client device that is stored on a cloud data center to determine missing Merkle nodes or missing data blocks which are present in the data stream Merkle tree but not present in the snapshot Merkle tree stored on the cloud data center; and
transmitting over a wide area network (WAN) the missing data blocks to the cloud data center.
11 Assignments
0 Petitions
Accused Products
Abstract
Efficient cloud storage systems, methods, and media are provided herein. Exemplary methods may include storing a data stream on a client side de-duplicating block store of a client device, generating a data stream Merkle tree of the data stream, storing a secure hash algorithm (SHA) key for the data stream Merkle tree, as well as the data stream Merkle tree on the client side de-duplicating block store, recursively iterating through the data stream Merkle tree using an index of a snapshot Merkle tree of the client device that is stored on a cloud data center to determine missing Merkle nodes or missing data blocks which are present in the data stream Merkle tree but not present in the snapshot Merkle tree stored on the cloud data center, and transmitting over a wide area network (WAN) the missing data blocks to the cloud data center.
97 Citations
19 Claims
-
1. A data stream synchronization method, comprising:
-
storing a data stream on a client side de-duplicating block store of a client device; generating a data stream Merkle tree of the data stream; storing a secure hash algorithm (SHA) key for the data stream Merkle tree, as well as the data stream Merkle tree on the client side de-duplicating block store; recursively iterating through the data stream Merkle tree using an index of a snapshot Merkle tree of the client device that is stored on a cloud data center to determine missing Merkle nodes or missing data blocks which are present in the data stream Merkle tree but not present in the snapshot Merkle tree stored on the cloud data center; and transmitting over a wide area network (WAN) the missing data blocks to the cloud data center. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A system, comprising:
-
a cloud data center comprising a cloud side de de-duplicating block store; and a client side appliance that is coupled to the cloud data center over a wide area network (WAN), the client side appliance being configured to; store a data stream on a client side de-duplicating block store of a client device; generate a data stream Merkle tree of the data stream; store a secure hash algorithm (SHA) key for the data stream Merkle tree, as well as the data stream Merkle tree on the client side de-duplicating block store; recursively iterate through the data stream Merkle tree using an index of a snapshot Merkle tree of the client device that is stored on a cloud data center to determine missing Merkle nodes or missing data blocks which are present in the data stream Merkle tree but not present in the snapshot Merkle tree stored on the cloud data center; and transmit over the wide area network (WAN) the missing data blocks to the cloud a center. - View Dependent Claims (18, 19)
-
Specification