Partition-by Time Tuple Window for Event Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional database systems are inadequate for processing continuous data streams due to their design assumptions based on finite data sets, making it impractical to handle the continuous flow of data with no explicit end range, which is essential for real-time processing and anomaly detection in applications like stock quote monitoring and traffic monitoring.

Innovation Solution

The implementation of a partition-by time/tuple-based sliding window approach, which partitions tuples by a partition key and removes expired tuples based on both the number of tuples and time range, allowing for efficient processing and storage of continuous data streams using CQL queries.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional database systems are used to store continuous data streams, then data can be stored and queried using SQL, but the system cannot handle the continuous flow of data with no explicit end range

Engineering Contradiction:
Improveability to handle continuous data streamsVSAvoiddata completeness
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent divides the continuous data stream into discrete tuples with specific attributes (timestamp, partition key, value). Each tuple is treated as an independent unit that can be processed and stored efficiently. This segmentation allows the system to handle continuous streams by processing individual data units rather than attempting to store the entire infinite stream at once.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic windowing mechanisms that automatically adjust the time range and tuple count based on processing requirements. The sliding window continuously moves through the data stream, dynamically adding new tuples and removing expired ones. This dynamic approach allows the system to adapt to varying data rates and processing demands while maintaining a manageable data set size.

Inventive Principle:
Principle #15Dynamics

2Quantity of substance

If all tuples in the continuous data stream are stored, then complete data is available for analysis, but storage requirements become impractical with large amounts of continual data

Engineering Contradiction:
Improvedata volume storedVSAvoidstorage feasibility
Core Design Contradiction:
Quantity of substanceVSEase of manufacture

Solution Approach 1:

The patent extracts only the essential attributes from each data tuple (timestamp, partition key, value) and stores them in a optimized format. Non-essential or redundant data is excluded from storage. This extraction approach maintains the core information needed for event stream processing while significantly reducing storage requirements compared to storing complete raw data.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements an expiration mechanism that automatically discards tuples that are no longer needed based on time-based or count-based criteria. The sliding window approach ensures that old tuples are removed when they fall outside the specified time range or when the maximum tuple count is reached. This discarding mechanism prevents unbounded storage growth while preserving recently arrived tuples that are likely to be relevant for current analysis.

Inventive Principle:
Principle #34Discarding and recovering

3Productivity

If a time-based sliding window is used to process continuous data streams, then recent data is prioritized, but the system cannot handle partition-specific requirements for different data types

Engineering Contradiction:
Improveprocessing speedVSAvoidpartition-specific handling
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent segments the continuous data stream into multiple partitions based on a partition key attribute. Each partition is independently managed with its own sliding window parameters (time range, tuple count). This segmentation allows different partitions to have different processing characteristics tailored to their specific requirements while maintaining overall system efficiency. The partition key enables natural grouping of related data without compromising processing speed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a universal sliding window framework that can handle both time-based and tuple-count-based expiration criteria simultaneously. The same core mechanism works across all partitions regardless of their specific data types or processing requirements. This multi-functional approach allows the system to maintain consistent processing performance while adapting to diverse partition-specific needs through configurable parameters.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Quantity of substance

If a tuple-based sliding window is used to limit storage, then storage is bounded, but the system cannot enforce both time range and tuple count constraints simultaneously

Engineering Contradiction:
Improvestorage boundVSAvoidconstraint management
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent merges the time-based expiration check and tuple-count expiration check into a unified sliding window mechanism. Both constraints are enforced simultaneously through a single data structure that tracks both the timestamp and position of each tuple. When a new tuple arrives, the system checks both the time range and tuple count, removing expired tuples based on either criterion. This merged approach simplifies constraint management compared to maintaining separate mechanisms for time and count constraints.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS7945540B2Method to create a partition-by time/tuple-based window in an event processing service
Publication Date: 2011.05.17 ORACLE INT CORP
  • US7945540B2 patent drawing
  • US7945540B2 patent drawing
  • US7945540B2 patent drawing

AI summary

A method to create a partition by time/tuple based window in an event processing service is provided. When continuous data streams are received, tuples are stored in a data structure with partitions based upon partition keys. Only a specified amount of tuples may be stored in each partition. When a partition exceeds the specified number of tuples, the oldest tuples are removed from the data structure. Tuples stored beyond a specified time period are also removed from the data structure. Two data structures may also be used to implement a time/tuple based window. Tuples are stored in both a data structure with a partition by window and a data structure with a range window. Tuples are removed in the partition by window when tuples exceed the amount in the partition. Tuples are removed in the range window when tuples exceed a specified time period. The two data structures are synchronized.