Merkle Tree Forest for Unlimited S3 Bucket Sync

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing object storage systems, such as Amazon S3, face challenges in synchronizing data buckets using Merkle trees due to fixed size limitations, which restrict scalability and efficiency in handling varying data sizes.

Innovation Solution

The implementation of a Merkle tree forest system, where additional trees are dynamically created when the fixed size limit is exceeded, allowing for unlimited size data buckets by using a 'Merkle_Generation' tag to coordinate key placement across source and target trees, ensuring efficient synchronization without size constraints.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a fixed-size Merkle tree is used for synchronization, then the synchronization algorithm can operate efficiently with a large enough address space, but the system cannot handle data buckets that exceed the fixed size limit

Engineering Contradiction:
Improvedata bucket size capacityVSAvoidtree structure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent divides a single large Merkle tree into multiple smaller Merkle trees, each with a fixed size limit. These segmented trees are managed independently but collectively represent the entire data bucket, allowing the system to handle unlimited data sizes while maintaining efficient fixed-size tree operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension by organizing Merkle trees into a hierarchical structure with multiple levels. Instead of using a single flat tree, the system creates a tree-of-trees architecture where parent trees contain references to child trees, effectively adding a dimensional layer to manage scalability.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If a large fixed-size Merkle tree is created to accommodate potential growth, then future data expansion is possible, but waste occurs when the actual data size is much smaller than the allocated size

Engineering Contradiction:
Improvedata bucket scalabilityVSAvoidcomputational waste
Core Design Contradiction:
Adaptability or versatilityVSLoss of substance

Solution Approach 1:

The patent implements a dynamic tree creation strategy where Merkle trees are created on-demand based on actual data insertion needs. Instead of pre-allocating a large fixed-size tree, the system dynamically partitions and creates tree segments only when necessary, adapting the structure to the actual data size and avoiding computational waste.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of tree size from a fixed static value to a dynamic value that adjusts based on data volume. The system monitors data size and automatically creates additional tree segments when thresholds are reached, allowing the effective tree size to scale with actual usage rather than being constrained by initial allocation.

Inventive Principle:
Principle #35Parameter changes

3Quantity of substance

If the Merkle tree size is increased to handle larger data buckets, then more data can be stored, but the synchronization computational complexity increases

Engineering Contradiction:
Improvedata storage capacityVSAvoidsynchronization complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent segments the synchronization process into multiple independent operations on smaller trees rather than a single operation on a large tree. Each subtree can be synchronized independently, reducing the computational complexity of each synchronization operation while collectively handling large data volumes through the hierarchical structure.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11455319B2Merkle tree forest for synchronizing data buckets of unlimited size in object storage systems
Publication Date: 2022.09.27 EMC IP HLDG CO LLC
  • US11455319B2 patent drawing
  • US11455319B2 patent drawing
  • US11455319B2 patent drawing

AI summary

Embodiments extend using sparse Merkle trees for smart synchronization of S3 buckets by overcoming fixed size limitations through creating another Merkle tree when the fixed size limit of the first tree is exceeded, and creating yet another tree when the second tree is filled up, and so on as needed. The method maintains a list of trees, in which each tree can be synchronized separately by keeping a strict division to trees according to generation number. The generation is passed from a source site to a target site during replication operations. The tagging of the generation number also makes it easy and efficient to remove an older version of an element or deal with deleted elements. This allows efficient syncing between two data object buckets without a size limitation on number of elements in a bucket.