Deterministic Event Processing Engines for Fault Tolerance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional Complex Event Processing (CEP) systems face issues with data loss, delayed or incorrect outputs, and inoperability due to component failures in distributed computer systems, as different components can fail independently, affecting overall system operation.
Innovation Solution
Implementing a system with multiple deterministic event processing engines that replicate system state, where a sender module generates a serialized message sequence with sequence numbers for order, allowing any engine to produce identical outputs, and a merger module removes redundancy to ensure continuous operation and output delivery to client devices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If multiple components are used in a distributed CEP system to process events, then the system can handle complex event processing tasks, but component failures can cause data loss, delayed or incorrect outputs, and system inoperability
Solution Approach 1:
The patent implements multiple deterministic event processing engines that replicate the same processing logic and system state. Each engine is a copy of the others, capable of producing identical outputs from the same input event streams. This copying approach ensures that if one engine fails, the system can switch to another engine without loss of functionality or data
Solution Approach 2:
The patent prepares redundant event processing engines in advance, so that when a failure occurs, the system can immediately switch to a backup engine without interruption. The redundant engines are pre-configured with the same processing logic and can assume the role of any failed engine, providing beforehand cushioning against component failures
2Ease of operation
If a single event processing engine is used, then the system is simpler to operate, but the system becomes vulnerable to complete failure if that engine crashes
Solution Approach 1:
The patent divides the event processing function into multiple independent segments (separate event processing engines). Each engine operates independently but processes the same events, allowing the system to segment the processing load and state across multiple components. This segmentation means that a failure in one engine does not affect the others, maintaining fault tolerance while keeping each individual engine relatively simple
3Reliability
If redundant event processing engines are implemented, then system availability and fault tolerance are improved, but system complexity and resource consumption increase
Solution Approach 1:
The patent applies local quality by making each event processing engine deterministic, meaning each engine processes events in a consistent, predictable manner based on the same input. The engines maintain local copies of the system state and process events independently. This local quality approach allows each engine to be simple and deterministic while the collective system provides high availability through redundancy
4Reliability
If event processing continues after a component failure, then system availability is maintained, but data loss and operational disruptions occur in conventional systems
Solution Approach 1:
The patent uses multiple copying event processing engines that all maintain identical copies of the system state. When a failure occurs, the surviving engines still have complete copies of all processed events and system state information. This copying ensures that no data is lost during failure transitions, as all engines have been processing the same events and maintaining the same state simultaneously
Data Source
AI summary
A system and method for replicating a distributed computer system state among a plurality of deterministic event processing engines are disclosed. A sender module receives a plurality of input events or input event streams and generates a serialized message sequence describing an order in which input events are processed. The serialized message sequence is then transmitted to a plurality of deterministic event processing engines for processing. As the event processing engines are deterministic, each event processing engine produces the same ordered sequence responsive to the received serialized message sequence. The ordered sequences from each deterministic event processing engine are transmitted to a merger module which generates an output from the plurality of ordered sequences. The merger module removes one or more redundant ordered sequences and associates the resulting output with a client device.


