Container Reconciler for Distributed Storage Policy Convergence

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In a highly available distributed object storage system like OpenStack Swift, network partitions can lead to inconsistent application of storage policies, resulting in data storage strategy conflicts and potential data loss or unavailability, as the system sacrifices availability for consistency during partitions.

Innovation Solution

A container reconciler is introduced to identify the correct data storage strategy by analyzing the log of state transitions and ensuring consistent application of storage policies across all object data, using a container replicator process to log and reposition misplaced objects and a reconciler to determine the correct policy based on timestamps, thus resolving split-brain inconsistencies and maintaining data integrity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the system stores whole copies of data on multiple drives with standard replication (three copies), then data availability is improved, but storage space consumption increases and data placement complexity increases

Engineering Contradiction:
Improvedata availabilityVSAvoidstorage space consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent changes the parameter of data representation by converting whole data copies into distributed hash values across a ring structure. Instead of storing complete data replicas on multiple drives, the system hashes data locations and distributes them along the ring, allowing any node to reconstruct data by collecting sufficient hash segments. This transforms the storage model from physical replication to cryptographic distribution, reducing storage consumption while maintaining availability.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent uses a form of copying where instead of copying entire data objects, it copies and distributes hash representations of data locations. Each node holds portions of these hash values, and the system reconstructs original data by aggregating these distributed hash segments. This selective copying approach reduces the storage burden compared to full replication while ensuring data can be recovered from multiple nodes.

Inventive Principle:
Principle #26Copying

2Productivity

If the system uses consistent hashing ring methodology for data placement, then data distribution efficiency is improved, but system complexity increases

Engineering Contradiction:
Improvedata placement efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies equipotentiality by creating a uniform hash ring where all nodes are positioned at equal conceptual distances from each other. The consistent hashing algorithm ensures that data placement follows a predictable pattern around the ring, making the system behavior uniform and predictable regardless of which node is queried. This equipotential design simplifies the complexity by providing a standardized, repeatable placement mechanism that reduces the cognitive load of managing distributed data.

Inventive Principle:
Principle #12Equipotentiality

Solution Approach 2:

The patent uses a circular ring structure for data placement, where the hash space forms a closed loop. This curved topology allows the system to handle node additions and failures elegantly - when nodes are added or removed, only the data immediately adjacent to them on the ring needs to be redistributed, rather than requiring complete system reorganization. The spherical/circular geometry provides natural boundaries and wraparound logic that simplifies edge case handling.

Inventive Principle:
Principle #14Spheroidality (Curvature)

3Adaptability or versatility

If the system allows nodes to be added or removed dynamically, then system adaptability is improved, but data redistribution overhead increases

Engineering Contradiction:
Improvesystem adaptabilityVSAvoiddata redistribution overhead
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements partial action by redistributing only the minimal necessary data when nodes are added or removed. In the consistent hashing ring, when a node joins or leaves, only the data segments immediately adjacent to that node's position on the ring need to be moved to neighboring nodes. This partial redistribution approach, rather than moving all data, dramatically reduces the time and computational overhead while maintaining system adaptability to dynamic node changes.

Inventive Principle:
Principle #16Partial or excessive action

4Reliability

If the system prioritizes availability during network partitions, then system availability is improved, but data consistency deteriorates

Engineering Contradiction:
Improvesystem availabilityVSAvoiddata consistency
Core Design Contradiction:
ReliabilityVSStability of the object's composition

Solution Approach 1:

The patent applies preliminary action by pre-distributing data across multiple nodes in the hash ring before any failures occur. Each node stores portions of data that are logically associated with it based on its position in the hash space. When network partitions occur, the system can continue serving requests using the already-distributed data portions, avoiding the need for real-time coordination during failures. This preliminary distribution strategy enables the system to maintain availability while preserving consistency, as the data is already in the correct locations before partitions happen.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10970256B2Reconciler for a distributed storage system
Publication Date: 2021.04.06 NVIDIA CORP
  • US10970256B2 patent drawing
  • US10970256B2 patent drawing
  • US10970256B2 patent drawing

AI summary

A technique is applied to eventually converge on a single data storage strategy for any set of object data which had an inconsistent data storage strategy applied during storage while there was a network partition. This state could occur in instances of a highly available distributed object storage system which can store objects according to multiple data storage strategies. Upon the healing of a network partition, the technique discovers if multiple data storage strategies were applied to the object data stored during a network partition, deterministically identifies which data storage strategy represents the correct strategy, for example based on the log of state transitions requested by the client according to the API contract, and ensures that this strategy is consistently applied to all object data in the collection.