Merkle Super Tree 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 super tree structure that dynamically creates additional trees 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 disks, ensuring efficient synchronization without requiring precise estimates of bucket size.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a fixed-size Merkle tree is used for S3 bucket synchronization, then the synchronization algorithm can operate efficiently with matching topology, but the system cannot handle buckets exceeding the predefined size limit

Engineering Contradiction:
Improvesynchronization efficiencyVSAvoidbucket size flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent divides a large S3 bucket into multiple fixed-size Merkle trees, each handling a portion of the bucket's data. This segmentation allows the system to maintain efficient synchronization algorithms on each individual tree while collectively handling buckets of unlimited size. The bucket is partitioned into chunks, with each chunk mapped to a specific Merkle tree, resolving the contradiction between fixed-size efficiency and unlimited scalability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension by organizing Merkle trees in a hierarchical structure where trees are grouped into super-trees. This dimensional expansion allows the system to manage unlimited bucket sizes by adding layers of organization rather than increasing the size of individual trees, maintaining synchronization efficiency at each level while providing unlimited capacity overall.

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

2Quantity of substance

If a sparse Merkle tree with fixed size is used, then memory usage is optimized for small buckets, but computational waste increases when buckets grow beyond the fixed size limit

Engineering Contradiction:
Improvememory usage efficiencyVSAvoidcomputational waste
Core Design Contradiction:
Quantity of substanceVSLoss of energy

Solution Approach 1:

The patent implements a dynamic system where the number and configuration of Merkle trees adapt to the actual bucket size. Instead of using a single large fixed-size tree that wastes memory on empty nodes, the system dynamically creates the appropriate number of smaller trees based on current data volume, optimizing memory usage while avoiding computational waste through efficient tree utilization.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If a large fixed-size Merkle tree is used to accommodate potential growth, then future scalability is provided, but significant memory waste occurs on small current buckets

Engineering Contradiction:
Improvefuture scalabilityVSAvoidmemory waste
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

Rather than allocating one large Merkle tree that wastes memory on small buckets, the patent segments the storage into multiple smaller trees that can be individually sized to match current needs. This segmentation provides both memory efficiency for small buckets and scalability for future growth, as new trees can be added as needed without wasting resources on unused capacity.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11461362B2Merkle super tree for synchronizing data buckets of unlimited size in object storage systems
Publication Date: 2022.10.04 EMC IP HLDG CO LLC
  • US11461362B2 patent drawing
  • US11461362B2 patent drawing
  • US11461362B2 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 super Merkle tree 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. Syncing between two data sites is efficient as the super Merkle tree of the source is synced with the super Merkle tree of the target using the hashes on the nodes, as in normal Merkle tree sync operations.