Conditional Appends in Ordered Event Stream Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImprovescalabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

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

Engineering Contradiction:
Improvedistributed storage capabilityVSAvoidcondition verification complexity
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If conditional appends are implemented with attribute verification, then data integrity is maintained, but the append operation becomes more complex

Engineering Contradiction:
Improvedata integrityVSAvoidappend operation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvedata consistencyVSAvoidappend operation time
Core Design Contradiction:
Stability of the object's compositionVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20220197723A1Conditional Appends in an Ordered Event Stream Storage System
Publication Date: 2022.06.23 EMC IP HLDG CO LLC
  • US20220197723A1 patent drawing
  • US20220197723A1 patent drawing
  • US20220197723A1 patent drawing

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.