File system storage in cloud using data and metadata merkle trees
First Claim
Patent Images
1. A data storage apparatus, comprising:
- an interface, for communicating with a backup storage system; and
one or more processors, configured to;
store a local copy of at least part of a file system represented by a hierarchical structure of nodes, each node including content and corresponding metadata;
store a backup copy of the at least part of the file system in the backup storage system;
store a metadata Merkle tree that is calculated over the backup copy, wherein each given node in the metadata Merkle tree includes a metadata key calculated over the metadata of a corresponding node of the backup copy, but not over the content of the corresponding node, and over the metadata keys of the child nodes of the given node; and
update the backup copy to match the local copy using the metadata Merkle tree, by;
calculating a temporary metadata Merkle tree over the stored local copy;
determining nodes of the temporary metadata Merkle tree having a different metadata key than the corresponding metadata key of the stored metadata Merkle tree; and
for the nodes determined to have a different metadata key, updating the content of the backup copy from the content of the stored local copy.
2 Assignments
0 Petitions
Accused Products
Abstract
A data storage apparatus includes an interface for communicating with a backup storage system, and one or more processors. The one or more processors are configured to store a local copy of at least part of a file system represented by hierarchical structure of directories and files, to store a backup copy of the at least part of the file system in the backup storage system, to store a dual Merkle tree that is calculated over the backup copy and includes (i) a metadata Merkle tree including Metadata Merkle-Tree Keys (MD-MTKs) and (ii) a data Merkle tree including Data Merkle-Tree Keys (D-MTKs), and to update the backup copy to match the local copy using the dual Merkle tree.
21 Citations
10 Claims
-
1. A data storage apparatus, comprising:
-
an interface, for communicating with a backup storage system; and one or more processors, configured to; store a local copy of at least part of a file system represented by a hierarchical structure of nodes, each node including content and corresponding metadata; store a backup copy of the at least part of the file system in the backup storage system; store a metadata Merkle tree that is calculated over the backup copy, wherein each given node in the metadata Merkle tree includes a metadata key calculated over the metadata of a corresponding node of the backup copy, but not over the content of the corresponding node, and over the metadata keys of the child nodes of the given node; and update the backup copy to match the local copy using the metadata Merkle tree, by; calculating a temporary metadata Merkle tree over the stored local copy; determining nodes of the temporary metadata Merkle tree having a different metadata key than the corresponding metadata key of the stored metadata Merkle tree; and for the nodes determined to have a different metadata key, updating the content of the backup copy from the content of the stored local copy. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for data storage, comprising:
-
storing a local copy of at least part of a file system represented by a hierarchical structure of nodes, each node including content and corresponding metadata; storing a backup copy of the at least part of the file system in a backup storage system; storing a metadata Merkle tree that is calculated over the backup copy, wherein each given node in the metadata Merkle tree includes a metadata key calculated over the metadata of a corresponding node of the backup copy, but not over the content of the corresponding node, and over the metadata keys of the child nodes of the given node; and updating the backup copy to match the local copy using the metadata Merkle tree, by; calculating a temporary metadata Merkle tree over the stored local copy; determining nodes of the temporary metadata Merkle tree having a different metadata key than the corresponding metadata key of the stored metadata Merkle tree; and for the nodes determined to have a different metadata key, updating the content of the backup copy from the content of the stored local copy. - View Dependent Claims (7, 8, 9)
-
-
10. A computer software product, the product comprising a tangible non-transitory computer-readable medium in which program instructions are stored, which instructions, when read by one or more processors, cause the processors to:
-
store a local copy of at least part of a file system represented by a hierarchical structure of nodes, each node including content and corresponding metadata; store a backup copy of the at least part of the file system in a backup storage system; store a metadata Merkle tree that is calculated over the backup copy, wherein each given node in the metadata Merkle tree includes a metadata key calculated over the metadata of a corresponding node of the backup copy, but not over the content of the corresponding node, and over the metadata keys of the child nodes of the given node; and update the backup copy to match the local copy using the metadata Merkle tree, by; calculating a temporary metadata Merkle tree over the stored local copy; determining nodes of the temporary metadata Merkle tree having a different metadata key than the corresponding metadata key of the stored metadata Merkle tree; and for the nodes determined to have a different metadata key, updating the content of the backup copy from the content of the stored local copy.
-
Specification