Cursor Component for Messaging Service Priority Queue Management

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 and increased persistence, which affects performance and resource consumption.

Innovation Solution

The implementation of a messaging service architecture that utilizes master queues with priority-based link lists and cursor components to manage message delivery from memory, optimizing caching and reducing memory usage by evicting lower-priority messages when necessary, and using statistics and storage managers to monitor and adjust memory allocation dynamically.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If more physical memory is allocated to message service instances for caching messages, then message delivery speed is improved, but memory resource consumption increases and other software functions suffer from resource starvation

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

Solution Approach 1:

The system dynamically adjusts the amount of memory allocated to message service instances based on current workload, message priorities, and delivery urgency. The memory manager monitors cache hit ratios and message queue depths, reallocating memory resources in real-time to optimize delivery speed without causing resource starvation of other functions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent implements priority-based message queues where different message types receive different levels of caching priority. High-priority messages are cached in fast memory with guaranteed retention, while low-priority messages use slower storage or are evicted more readily. This local differentiation of quality allows the system to optimize for speed where critical while conserving resources for less urgent communications.

Inventive Principle:
Principle #3Local quality

2Productivity

If messages are cached in physical memory instead of persisted in remote database, then message delivery performance is improved, but memory resources are depleted

Engineering Contradiction:
Improvemessage delivery performanceVSAvoidavailable memory
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

Instead of caching all messages in memory, the system caches only the necessary portion - specifically, messages that are likely to be delivered soon based on priority, recency, and delivery patterns. The cache size is set to an optimal threshold that provides sufficient performance improvement while leaving adequate memory for other functions. Messages beyond this threshold are persisted in remote storage.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent implements an eviction policy that actively discards low-priority or old messages from the cache when memory pressure is detected, transferring them to persistent storage. When memory becomes available or a message is needed again, it is recovered from persistent storage back into the cache. This dynamic discarding and recovering allows the system to maintain high performance while adapting to changing memory conditions.

Inventive Principle:
Principle #34Discarding and recovering

3Ease of operation

If cursor components advance through master queues to deliver messages, then message delivery is achieved, but cache misses increase when messages are not found in memory

Engineering Contradiction:
Improvemessage delivery operationVSAvoidtime for cache misses
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The system performs preliminary actions by pre-caching messages that are likely to be needed soon, based on delivery patterns, message priorities, and consumer subscription information. The cursor component is positioned in advance near expected message locations in the queue, reducing the distance it must traverse when messages are delivered. This preliminary preparation minimizes cache misses and speeds up the actual delivery operation.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If memory allocation is increased for message caching, then cache hit ratio is improved, but other software functions experience resource starvation

Engineering Contradiction:
Improvecache hit ratioVSAvoidresource availability for other functions
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The memory manager implements a universal resource pool that serves multiple software functions including message service instances, application containers, and other system processes. Instead of dedicating fixed memory to messaging, the system dynamically shares the memory pool among all functions based on current needs, ensuring that message caching receives adequate resources to maintain high cache hit ratios while other functions can borrow resources when needed, preventing resource starvation.

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

Data Source

PatentUS7941808B2Cursor component for messaging service
Publication Date: 2011.05.10 SAP SE
  • US7941808B2 patent drawing
  • US7941808B2 patent drawing
  • US7941808B2 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.