Distributed Storage Write Ordering via Priority Values

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional distributed storage systems face scalability issues due to centralized locking, complex recoveries requiring entire file replicas, and inefficiencies in handling node failures and updates, particularly in canonical replication systems.

Innovation Solution

A three-phase method for updating files in a distributed storage system where a majority of nodes must be responsive, using local and global priority values to ensure consistent ordering of writes, automatic recovery of failed nodes, and in-memory storage to reduce disk load and prevent corruption, allowing edits even when a node is down.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If canonical replication is used with centralized locking, then consistency is maintained, but scalability deteriorates

Engineering Contradiction:
ImproveconsistencyVSAvoidscalability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system segments the centralized locking mechanism into distributed locking using priority values at each node. Instead of one central authority managing all locks, each node maintains its own priority value and makes independent locking decisions based on comparing its priority against others, enabling parallel operations across the distributed system while maintaining consistency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Priority values act as intermediaries that mediate between distributed nodes to establish ordering without centralized control. Each node uses its priority value as a mediator to determine lock acquisition and transaction ordering, eliminating the need for centralized locking while preserving consistency through the intermediary priority mechanism.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of information

If manifest files are stored and frequently edited, then file tracking is maintained, but processing power and storage requirements increase

Engineering Contradiction:
Improvefile trackingVSAvoidprocessing power
Core Design Contradiction:
Loss of informationVSPower

Solution Approach 1:

The patent extracts the file tracking information from large manifest files and stores it separately in the database catalog. Instead of maintaining and editing massive manifest files, the system extracts essential tracking data into compact database records, significantly reducing the processing power needed to track file changes while maintaining complete file tracking capability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system creates a simplified copy of file tracking information in the database catalog that references the actual files stored in the file system. This copy contains only the essential metadata needed for tracking, allowing the system to maintain file tracking without manipulating the full manifest files, thereby reducing processing requirements.

Inventive Principle:
Principle #26Copying

3Loss of information

If manifest files are retained for several weeks, then file history is preserved, but storage requirements increase

Engineering Contradiction:
Improvefile historyVSAvoidstorage
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

The patent extracts file history information from large manifest files and stores it in the database catalog. By extracting tracking data from the full manifest content, the system preserves complete file history in a compact database format, reducing storage requirements from gigabytes or terabytes to a fraction of that size while maintaining historical accuracy.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system creates a compact copy of file history in the database catalog that references files stored in the file system. This copied history contains essential metadata and references rather than full manifest content, preserving file history information while dramatically reducing the storage space required to maintain several weeks of historical data.

Inventive Principle:
Principle #26Copying

4Reliability

If centralized locking is used, then transaction ordering is controlled, but latency increases

Engineering Contradiction:
Improvetransaction orderingVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system segments the centralized transaction ordering control into distributed ordering based on local priority values. Each node independently determines transaction ordering based on its priority value and the priorities of other nodes, eliminating the need for centralized coordination and reducing the latency associated with centralized locking while maintaining consistent transaction ordering across the distributed system.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9471593B1Method and apparatus for ensuring consistent ordering of writes in a distributed database storage system
Publication Date: 2016.10.18 EMC IP HLDG CO LLC
  • US9471593B1 patent drawing
  • US9471593B1 patent drawing
  • US9471593B1 patent drawing

AI summary

Example embodiments of the present invention update copies of a file stored in a distributed storage system and provide a unique set of features, including multi-master writes, requiring a quorum response for writes, allowing multikey transactions, using an SQL relational database, and providing immediate write consistency. The method includes receiving a transaction request from a client served by the distributed storage system and requesting local priority messages from a plurality of receiver nodes in the distributed storage system. A global priority message, including a global priority value and the requested transaction, is then sent to the receiver nodes. Return codes from each receiver node are then processed to determine the status of the requested transaction at each receiver node. Other example embodiments include a method and computer program product that process a request priority message, processing a global priority message including a requested transaction and apply the requested transaction.