Messaging Service Cache Management via Priority Link Lists

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In component-based software environments, messaging services face challenges in delivering messages efficiently due to limited memory allocation, leading to insufficient caching of messages within physical memory, which results in slower message delivery and increased resource consumption.

Innovation Solution

The implementation of a messaging service architecture that utilizes master queues with priority-based link lists and a memory management system to cache messages in memory rather than persisting them in a database, ensuring faster delivery while conserving memory resources by dynamically adjusting the number of master queue entries based on consumer consumption rates and message priority.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If messages are cached in physical memory to enable faster delivery, then message delivery speed is improved, but memory resource consumption increases

Engineering Contradiction:
Improvemessage delivery speedVSAvoidmemory resource consumption
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent applies local quality by implementing priority-based differentiation in message caching. High-priority messages receive preferential treatment in terms of caching resources and memory allocation, while low-priority messages are handled differently. This is achieved through separate link lists for different priority levels (e.g., HIGH_PRIORITY_LINK_LIST, NORMAL_PRIORITY_LINK_LIST) that organize cached messages according to their importance, allowing the system to optimize memory usage by focusing resources on critical messages rather than treating all messages uniformly.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements dynamics through adaptive memory management where the messaging service dynamically adjusts the number of master queue entries based on consumer consumption rates and message priority. The system monitors consumption patterns and automatically scales the cache size and memory allocation up or down accordingly. This dynamic adjustment allows the system to maintain optimal message delivery speed while preventing excessive memory consumption, as the cache adapts to actual workload demands rather than maintaining a fixed size.

Inventive Principle:
Principle #15Dynamics

2Productivity

If memory allocation is increased to cache more messages, then message delivery performance is improved, but system resource availability for other functions deteriorates

Engineering Contradiction:
Improvemessaging service performanceVSAvoidavailable memory for other functions
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent applies parameter changes by dynamically modifying the master queue entry count based on consumption rates and priority levels. Instead of allocating a fixed large memory space, the system adjusts the number of cached messages as a variable parameter according to actual demand. The master queue size is modified based on monitored consumption patterns and message priority distributions, allowing the system to optimize messaging performance while leaving sufficient memory available for other system functions.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements partial action by caching only the necessary portion of messages rather than all messages. The system determines an optimal cache size that is sufficient for maintaining good message delivery performance but not excessive. By caching only high-priority and frequently consumed messages while leaving lower-priority messages to be retrieved from persistence storage when needed, the system achieves adequate productivity without over-consuming memory resources that would be unavailable for other functions.

Inventive Principle:
Principle #16Partial or excessive action

3Speed

If all messages are cached in memory regardless of priority, then message delivery speed is maximized, but memory efficiency deteriorates

Engineering Contradiction:
Improvemessage delivery speedVSAvoidmemory resource efficiency
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The patent applies local quality through priority-based message differentiation in the caching strategy. Instead of treating all messages uniformly, the system creates distinct handling paths for different priority levels. High-priority messages are aggressively cached in memory with higher retention rates, while low-priority messages are cached less frequently or kept in persistence storage. This is implemented through separate link lists and priority-based decision logic that determines which messages to cache, ensuring memory efficiency by focusing resources on messages where caching provides the most value.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements parameter changes by dynamically adjusting caching parameters based on message priority and consumption patterns. The system modifies cache retention policies, cache size allocations, and retrieval strategies as variables rather than using fixed rules. Priority levels serve as key parameters that change the caching behavior, allowing the system to maintain high delivery speed for critical messages while improving memory efficiency by reducing caching for less important messages.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7917656B2Statistics monitoring for messaging service
Publication Date: 2011.03.29 SAP SE
  • US7917656B2 patent drawing
  • US7917656B2 patent drawing
  • US7917656B2 patent drawing

AI summary

A messaging service is described that incorporates messages into cached link lists. The messages are not yet acknowledged as having been received by one or more consumers to whom the messages were sent. A separate link list exists for each of a plurality of different message priority levels. Messages within a same link list are ordered in their link list in the same order in which they where received by the messaging service. At least one of the link lists contains an element that represents one or more messages that are persisted but are not cached in any of the cached link lists.