Memory Spill Evict Policy for Bursty Data Streams

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional database management systems are inadequate for handling continuous and unbounded data streams, such as those from stock quote monitoring or automobile traffic monitoring, as they are designed for finite data sets and struggle with bursty data streams that quickly fill processing memory, leading to performance issues and potential system crashes.

Innovation Solution

Implementing an evict policy that automatically spills data from processing memory to persistent storage based on memory usage levels, allowing the system to efficiently manage memory and handle bursty data streams without significantly impacting performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is stored in processing memory for continuous stream processing, then processing speed is improved, but memory capacity is exceeded during bursty data streams

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

Solution Approach 1:

The system segments data storage into two distinct layers: processing memory (RAM) for active data and persistent storage (disk) for spilled data. This segmentation allows the system to maintain fast processing for frequently accessed data while offloading less frequently accessed data to persistent storage, thereby resolving the contradiction between processing speed and memory capacity constraints.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system transitions from a single-dimensional storage model (only in-memory) to a two-dimensional storage model by adding persistent storage as a second dimension. Data can reside in either memory or persistent storage based on access patterns, enabling the system to handle bursty data streams by spilling excess data to the second dimension while maintaining fast access for active processing.

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

2Reliability

If traditional database management systems are used for finite data sets, then data integrity is maintained, but they cannot handle continuous unbounded data streams

Engineering Contradiction:
Improvedata integrityVSAvoiddata stream handling capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system introduces dynamic adaptability by implementing an evict policy that automatically monitors memory usage and dynamically spills data to persistent storage when thresholds are exceeded. This dynamic mechanism allows the system to adapt to varying data stream patterns and bursty conditions while maintaining data integrity through structured spill operations that preserve data relationships and consistency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the operational parameters of data storage by introducing spill thresholds and evict policies that control when and how data is moved between memory and persistent storage. These parameter changes enable the system to handle unbounded data streams by adjusting storage behavior based on current memory conditions while maintaining data integrity through controlled spill operations.

Inventive Principle:
Principle #35Parameter changes

3Quantity of substance

If data is spilled from processing memory to persistent storage, then memory capacity is preserved, but processing performance may be impacted

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

Solution Approach 1:

The system applies local quality by implementing selective spilling based on data characteristics and access patterns. Not all data is spilled uniformly; instead, the evict policy identifies specific data candidates for spilling based on local conditions such as memory pressure and data usage patterns. This ensures that frequently accessed data remains in memory while less critical data is spilled, minimizing performance impact.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system implements feedback mechanisms through the evict policy that continuously monitors memory usage and processing performance. When memory capacity thresholds are approached, the policy triggers selective spilling operations. This feedback loop allows the system to maintain optimal memory utilization while minimizing performance degradation by spilling only when necessary and using intelligent selection criteria.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8145859B2Method and system for spilling from a queue to a persistent store
Publication Date: 2012.03.27 ORACLE INT CORP
  • US8145859B2 patent drawing
  • US8145859B2 patent drawing
  • US8145859B2 patent drawing

AI summary

Techniques for managing memory usage of a processing system by spilling data from a memory to a persistent store based upon an evict policy are provided. A triggering event is detected. In response to the triggering event and based on the evict policy, it is determined whether data from the memory of the processing system is to be spilled to the persistent storage. The determination is made by comparing a level of free memory of the processing system with a threshold specified by the evict policy. The data is evicted from the memory.