Dynamic Tuple Class Generation for Stream Memory Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional database systems are inefficient in handling continuous and unbounded data streams due to their design based on finite data sets, leading to excessive memory usage and poor performance in processing real-time event streams from sources like sensors and financial tickers.

Innovation Solution

The system dynamically generates tuple and page classes based on the specific data types present in the stream, optimizing memory usage by creating classes that only support the actual data types included in the tuples and pages, thereby reducing memory consumption and enhancing processing performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If traditional database systems store data streams in tables, then data can be organized in a structured format, but memory usage becomes excessive and processing performance deteriorates due to the continuous and unbounded nature of data streams

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

Solution Approach 1:

The patent applies dynamics by making the tuple class structure adaptable and flexible rather than fixed. The system dynamically determines the layout of tuples based on actual data types present in the stream, allowing the memory structure to adjust to the specific characteristics of incoming data. This enables optimal memory utilization while maintaining high processing performance for continuous data streams.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of memory structure organization from fixed table formats to dynamic tuple layouts. By determining layouts based on actual data types and generating corresponding tuple classes at runtime, the system optimizes memory usage patterns. This parameter change allows the system to handle unbounded data streams efficiently without excessive memory consumption.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If generic tuple classes supporting all possible data types are used, then the system can handle diverse data streams, but memory consumption increases due to supporting unused data types

Engineering Contradiction:
Improvedata type compatibilityVSAvoidmemory consumption
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent applies local quality by making each tuple class specialized for its specific data type requirements rather than using a uniform generic structure. The system determines the actual data types present in the stream and generates tuple classes with layouts tailored to those specific types. This localized optimization ensures that memory is used efficiently for the actual data being processed while maintaining the ability to handle diverse data streams through dynamic class generation.

Inventive Principle:
Principle #3Local quality

3Ease of manufacture

If fixed tuple class structures are used at compile time, then system development is simpler, but the system cannot optimize memory usage for specific data stream characteristics

Engineering Contradiction:
Improvesystem development simplicityVSAvoidmemory efficiency
Core Design Contradiction:
Ease of manufactureVSQuantity of substance

Solution Approach 1:

The patent applies self-service by enabling the system to automatically determine data types, generate appropriate tuple classes, and optimize memory layouts without requiring manual intervention during development. The runtime system services itself by dynamically adapting to the characteristics of incoming data streams, generating specialized tuple classes as needed. This self-service approach maintains ease of development while achieving optimal memory efficiency.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8935293B2Framework for dynamically generating tuple and page classes
Publication Date: 2015.01.13 ORACLE INT CORP
  • US8935293B2 patent drawing
  • US8935293B2 patent drawing
  • US8935293B2 patent drawing

AI summary

Techniques for reducing the memory used for processing events received in a data stream are provided. This may be achieved by reducing the memory required for storing tuples. A method for processing a data stream includes receiving a tuple and determining a tuple specification that defines a layout of the tuple. The layout identifies one or more data types that are included in the tuple. A tuple class corresponding to the tuple specification may be determined. A tuple object based on the tuple class is instantiated, and during runtime of the processing system. The tuple object is stored in a memory.