Messaging Memory Pool Simulation for Spill Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In queuing applications, managing memory allocation is challenging due to limited resources, leading to frequent 'spilling' of messages to disk and 'unspilling' back to memory, which is time-consuming and costly, and existing methods lack sufficient information for determining optimal memory allocation, affecting system performance.

Innovation Solution

A simulation method is implemented to estimate the performance of messaging applications by tracking requests and predicting operations for various memory pool sizes, calculating spill and unspill data, and determining the age of messages to optimize memory allocation, allowing for user selection or automatic resizing of memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If more memory is allocated to the messaging application, then spill and unspill count is reduced, but performance of other applications in the system deteriorates

Engineering Contradiction:
Improvespill and unspill countVSAvoidperformance of other applications
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The system performs preliminary analysis by collecting messaging workload characteristics and spill/unspill patterns before making memory allocation decisions. This advance preparation enables the system to predict optimal memory allocation without requiring trial-and-error adjustments that would impact other applications during the optimization process.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms by continuously monitoring messaging application performance metrics, spill/unspill operations, and overall system memory utilization. This feedback loop enables dynamic adjustment of memory allocation to balance the messaging application's needs with the performance requirements of other applications sharing the same memory resources.

Inventive Principle:
Principle #23Feedback

2Reliability

If memory allocation for messaging application is increased, then message storage in memory improves, but system resource utilization deteriorates

Engineering Contradiction:
Improvemessage storage in memoryVSAvoidsystem resource utilization
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system changes key parameters including memory allocation size, message retention policies, and spill thresholds based on analyzed workload characteristics. By adjusting these parameters dynamically, the system optimizes the balance between keeping messages in memory for fast access and utilizing disk storage when memory resources are constrained.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system implements dynamic memory allocation that adapts to changing messaging workload patterns rather than using static allocation. This allows the messaging application to receive more memory during high-activity periods when performance is critical and release memory during low-activity periods, thereby improving reliability without permanently consuming excessive system resources.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If users allocate memory based on available information, then memory allocation decisions are made, but insufficient information leads to suboptimal performance

Engineering Contradiction:
Improvememory allocation decision-makingVSAvoidsystem performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system introduces an intermediary analysis layer that collects raw messaging workload data, processes it through performance models, and presents processed insights to users. This intermediary layer transforms complex system metrics into actionable recommendations, enabling users to make informed memory allocation decisions without needing to understand the underlying complexity of spill/unspill operations and performance trade-offs.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system replaces manual trial-and-error memory allocation tuning with an automated analysis and recommendation system. Instead of users physically adjusting memory settings based on limited information, the system automatically analyzes workload patterns, predicts optimal allocation, and provides data-driven recommendations, thereby substituting mechanical adjustment with intelligent automation.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS7937257B2Estimating performance of application based on automatic resizing of shared memory for messaging
Publication Date: 2011.05.03 ORACLE INT CORP
  • US7937257B2 patent drawing
  • US7937257B2 patent drawing
  • US7937257B2 patent drawing

AI summary

Methods and systems for estimating the hypothetical performance of a messaging application are disclosed. A number of pool sizes may be identified, each pool size being a potential size for the memory allocated to the messaging application. An online simulation is running during the execution of the messaging application. The online simulation tracks the requests made by the messaging application and predicts the operation of the messaging application for each pool size. The data predicted includes the number of spill and unspill operations that read and write to disk. In addition, a method for calculating the age of the oldest message in a memory pool is disclosed. The age is used in determining the number of spill and unspill operations.