Shared Memory Page Allocation for Messaging Transports

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current servers and communication systems do not effectively utilize shared memory for efficient data transport in scenarios involving many senders to one receiver or one sender to many receivers, lacking efficient methods for page allocation and flow control.

Innovation Solution

The implementation of systems and methods that allocate pages in shared memory for data transport, allowing senders to write data and signal receivers, with proactive flow control mechanisms for managing page allocation and de-allocation, ensuring efficient data transfer and resilience to sender and receiver faults.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If shared memory is used for data transport with multiple senders and receivers, then data transport efficiency is improved, but page allocation management complexity increases

Engineering Contradiction:
Improvedata transport efficiencyVSAvoidpage allocation management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The shared memory is divided into fixed-size pages that can be independently allocated and managed. Each page can be individually tracked through free lists and allocation structures, allowing efficient management of multiple senders and receivers without requiring complex centralized control of the entire memory space.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements self-service page allocation where senders and receivers autonomously allocate and manage their own pages through free lists and allocation structures. This eliminates the need for complex centralized page management, reducing overall system complexity while maintaining high data transport efficiency.

Inventive Principle:
Principle #25Self-service

2Reliability

If proactive flow control is implemented for one sender to many receivers, then data integrity is improved, but system complexity increases

Engineering Contradiction:
Improvedata integrityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system performs preliminary flow control actions by pre-allocating pages and establishing allocation structures before data transmission begins. Senders proactively manage page allocation and can pause transmission when memory availability is insufficient, ensuring data integrity is maintained from the outset rather than reacting to errors after they occur.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If shared memory pages are allocated for multiple senders, then communication capability is improved, but memory resource management complexity increases

Engineering Contradiction:
Improvecommunication capabilityVSAvoidmemory resource management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The page allocation structures and free lists serve multiple functions simultaneously: they track available memory pages, manage allocation to multiple senders, and provide the basis for flow control. This multi-functionality reduces the need for separate management mechanisms, lowering overall complexity while enhancing communication capability.

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

Data Source

PatentEP2641188B1Locking and signaling for implementing messaging transports with shared memory
Publication Date: 2018.07.11 TIBCO SOFTWARE INC
  • EP2641188B1 patent drawingFigure 1~2
  • EP2641188B1 patent drawingFigure 3~5
  • EP2641188B1 patent drawingFigure 6~8

AI summary

Disclosed are systems and methods for transporting data using shared memory comprising allocating, by one of a plurality of sender application, one or more pages, wherein the one or more pages are stored in a shared memory, wherein the shared memory is partitioned into one or more pages, and writing data, by the sender application, to the allocated one or more pages, wherein a page is either available for use or allocated to the sender applications, wherein the one or more pages become available after the sender application has completed writing the data. The systems and methods further disclose sending a signal, by the sender application, to a receiver application, wherein the signal notifies the receiver application that writing the data to a particular page is complete, reading, by the receiver application, the data from the one or more pages, and de-allocating, by the receiver application, the one or more pages.