Conditional Appends in Ordered Event Stream Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional event stream storage systems face challenges in performing conditional appends due to their rudimentary and non-scalable nature, especially in modern distributed and dynamic ordered event stream (OES) systems where topology changes and distributed storage complicate the determination of conditions for appending events.
Innovation Solution
The system facilitates conditional appends by using a conditional append component that verifies conditions based on segment-specific attributes and attribute updates, ensuring that events are appended only when specific conditions are met, while maintaining consistency and durability guarantees, even in scalable and distributed OES systems.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If conventional event stream storage techniques are used, then data can be stored in a logical order, but the system is rudimentary and non-scalable
Solution Approach 1:
The event stream is divided into multiple segments that can be independently managed and stored across distributed storage systems. Each segment represents a portion of the overall event stream, allowing the system to scale horizontally by adding more segments without increasing overall system complexity proportionally.
Solution Approach 2:
The patent introduces epoch-based versioning to manage segment attributes, adding a temporal dimension to attribute management. This allows the system to handle attribute changes over time without complicating the core storage structure, enabling scalability while maintaining manageable complexity.
2Adaptability or versatility
If distributed storage is implemented to improve scalability, then the system can handle larger event streams, but determining conditions for appending events becomes more complex
Solution Approach 1:
The system pre-fetches segment attributes before attempting to append events, ensuring that all necessary information is available locally before condition verification. This preliminary action simplifies the append operation by eliminating the need for complex distributed coordination during the actual append process.
Solution Approach 2:
The patent introduces an epoch-based attribute management system that acts as an intermediary between distributed segments. Attributes are managed at the epoch level, providing a unified view of segment conditions without requiring direct access to distributed storage details, thus simplifying condition verification.
3Reliability
If conditional appends are implemented with attribute verification, then data integrity is maintained, but the append operation becomes more complex
Solution Approach 1:
The system performs attribute fetching and condition verification as preliminary steps before the actual append operation. By preparing all necessary attribute information in advance, the core append operation itself remains simple and straightforward, maintaining low complexity while ensuring data integrity through pre-verification.
4Stability of the object's composition
If segment attributes are fetched and verified before each append, then consistency is ensured, but the operation time increases
Solution Approach 1:
Attributes are fetched in advance before the append operation, and the system caches these attributes for use during the append process. This preliminary fetching avoids repeated access to storage systems during condition verification, reducing the time penalty while maintaining consistency through proper attribute management.
Solution Approach 2:
The system uses epoch-based attribute management where attributes are valid for specific time periods (epochs). Within an epoch, attributes remain consistent without requiring repeated verification, dynamically adjusting the verification frequency to balance consistency and performance.
Data Source
AI summary
Conditionally appending an event in an ordered event stream (OES) is disclosed. An OES storage system can comprise an OES that can have a dynamic topology, e.g., comprising changing numbers of segments, segments that have changing routing key ranges, mixes of local and remote storage devices and processors, employing different types of storage, or combinations thereof. A conditional append operation can be predicated on determining an appropriate segment, for example, based on a routing key. Conditions of the conditional appends can be designated by a user. Failing conditions can trigger a corrective action, throwing of an error. Satisfied conditions can result in permitting the conditional append. Moreover, the conditional append can be dependent on populating a group of attributes for the correct segment based on attributes that can be determined for a different epoch of the OES, again for example, based on a routing key.


