Conditional Command Execution Engine for Storage Metadata

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Storage systems face challenges in managing concurrent access and versioning of objects, particularly in ensuring atomic transactions and efficient data management across multiple threads, especially when dealing with complex metadata and version control.

Innovation Solution

The implementation of a conditional command execution engine (CCEE) that determines the presence and version of objects in a storage system by using root metadata records and version-specific metadata records, allowing for atomic operations such as storing or deleting object data based on specific version identifiers and system version checks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If atomic transactions are used to ensure concurrency control, then data integrity is improved, but transaction complexity and execution time increase

Engineering Contradiction:
Improvedata integrityVSAvoidtransaction complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system performs a read operation to retrieve the current version identifier before the write operation. This preliminary action allows the system to check the version condition and make decisions about whether to execute the write operation, thereby simplifying the overall transaction process while maintaining data integrity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses version identifiers as feedback to control the write operation. By checking the current version identifier against the expected version, the system can determine whether to proceed with the write, thus simplifying concurrency control while ensuring data integrity through version-based feedback mechanisms.

Inventive Principle:
Principle #23Feedback

2Stability of the object's composition

If version control mechanisms are implemented to manage concurrent access, then data consistency is improved, but system complexity increases

Engineering Contradiction:
Improvedata consistencyVSAvoidsystem complexity
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

The system uses version identifiers as copies or representations of the actual data state. Instead of implementing complex version control mechanisms, the system relies on these identifier copies to manage concurrency and ensure consistency, thereby reducing system complexity while maintaining data stability.

Inventive Principle:
Principle #26Copying

3Reliability

If conditional commands are executed to ensure atomic operations, then data reliability is improved, but execution time increases

Engineering Contradiction:
Improvedata reliabilityVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs the read operation to retrieve the version identifier as a preliminary action before the write operation. This allows the system to check conditions and make decisions in advance, potentially avoiding unnecessary write operations and reducing overall execution time while maintaining data reliability through version-based conditional logic.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11599504B2Executing a conditional command on an object stored in a storage system
Publication Date: 2023.03.07 ORACLE INT CORP
  • US11599504B2 patent drawing
  • US11599504B2 patent drawing
  • US11599504B2 patent drawing

AI summary

Each object is associated with one root metadata record and one or more version-specific metadata records, each corresponding to a version of object data. A conditional command may be conditioned upon whether an object is stored in a storage system. Whether the condition is satisfied is determined based on whether a root metadata record of the object exists. If the condition is satisfied, then metadata is updated to reflect execution of the conditional command. A conditional command may be conditioned upon whether a data version identifier or a metadata version identifier equals a particular value. A conditional command execution engine retrieves the relevant version identifier from a version-specific metadata record, and performs a check on whether the condition is satisfied. If the condition is satisfied, the engine ensures that the version-specific record has not been modified during the check, and updates metadata to reflect execution of the conditional command.