Conditional Command Execution Engine for Storage Metadata
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Reliability
If atomic transactions are used to ensure concurrency control, then data integrity is improved, but transaction complexity and execution time increase
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.
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.
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
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.
3Reliability
If conditional commands are executed to ensure atomic operations, then data reliability is improved, but execution time increases
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.
Data Source
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.


