Event Processing Query Paging Mechanism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Event-processing systems face challenges in managing memory efficiently due to the need to store large numbers of standing queries, which can occupy non-trivial amounts of memory, leading to suboptimal memory management and excessive disk and memory accesses, especially in high-throughput environments.

Innovation Solution

The implementation of pageable event-processing queries that support swapping in and out of memory by rewriting queries to include page-in and page-out triggers, leveraging domain-specific characteristics and exploiting features like query operators and checkpointing, allowing for intelligent decision-making on when to load and unload query code and data from memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If event-processing queries are stored in memory for continuous real-time processing, then processing speed and real-time capability are improved, but memory consumption increases

Engineering Contradiction:
Improveprocessing speedVSAvoidmemory consumption
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The system dynamically loads and unloads query code from memory based on runtime conditions and memory availability. Queries are loaded into memory when needed for processing and unloaded when memory pressure increases or queries are inactive, transforming the static memory allocation into a dynamic adaptation mechanism that resolves the contradiction between processing speed and memory consumption.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system performs preliminary actions by pre-loading queries into memory before they are needed for processing, and pre-unloading queries that are unlikely to be needed soon. This anticipatory approach allows the system to maintain fast processing when queries are in memory while reducing overall memory consumption by proactively managing query lifecycle.

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If queries are unloaded from memory to conserve memory, then memory consumption is reduced, but processing speed decreases due to disk accesses

Engineering Contradiction:
Improvememory consumptionVSAvoidprocessing speed
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The system performs preliminary loading of queries into memory before they are needed for processing. By anticipating query execution needs and pre-loading relevant queries, the system ensures that when queries are needed, they are already in memory and can be processed quickly, thereby reducing the frequency of slow disk accesses while still maintaining low memory consumption overall.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses feedback mechanisms to monitor query execution patterns, memory usage, and performance metrics. Based on this feedback, the system dynamically adjusts its query loading and unloading decisions, learning from past behavior to optimize the balance between memory consumption and processing speed. This feedback-driven approach allows the system to adapt to changing workloads and maintain optimal performance.

Inventive Principle:
Principle #23Feedback

3Productivity

If all standing queries are kept in memory, then real-time processing capability is maintained, but memory management efficiency deteriorates

Engineering Contradiction:
Improvereal-time processing capabilityVSAvoidmemory management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements dynamic memory management where the set of queries resident in memory changes over time based on workload conditions, memory availability, and query activity patterns. This dynamic approach allows the system to maintain real-time processing capability for active queries while automatically managing memory resources, reducing the complexity of manual memory management and optimizing productivity.

Inventive Principle:
Principle #15Dynamics

4Quantity of substance

If queries are frequently swapped in and out of memory, then memory consumption is optimized, but system performance deteriorates due to excessive disk accesses

Engineering Contradiction:
Improvememory consumptionVSAvoidsystem performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The system performs preliminary actions by pre-loading queries into memory before they are needed and pre-unloading queries that are unlikely to be needed soon. This anticipatory approach reduces the frequency of urgent disk accesses during query execution, thereby optimizing memory consumption without causing excessive disk I/O that would degrade system performance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system employs feedback mechanisms to monitor query execution patterns, memory usage, and disk I/O performance. Based on this feedback, the system dynamically adjusts its query swapping strategy, learning from past behavior to minimize unnecessary disk accesses while maintaining optimized memory consumption. This feedback-driven optimization prevents excessive swapping that would harm system performance.

Inventive Principle:
Principle #23Feedback

Data Source

PatentEP3281125B1Event processing system paging
Publication Date: 2019.07.31 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3281125B1 patent drawingFigure 1
  • EP3281125B1 patent drawingFigure 2
  • EP3281125B1 patent drawingFigure 3

AI summary

A pageable query can be generated based on an event-processing query. The pageable query is a form of the event-processing query that supports swapping the event-processing query into and out of memory. For instance, page-in and page-out triggers can be inserted. After detection of a page-in trigger, the event-processing query can be loaded into the memory, and after detection of a page-out trigger, the event-processing query can be unloaded from memory.