Shared Memory Data Transport Between Server Processes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional web server architectures face inefficiencies in data transport between processes due to the need for numerous memory copy operations, leading to high memory utilization and resource overhead, impacting performance.

Innovation Solution

Implementing a shared memory segment system where a file descriptor is created and mapped in the address space of both processes, allowing direct data sharing without the need for memory copy operations, using shared memory segments and sockets for control messages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If sockets are used to transport data between process address spaces, then data can be transferred between processes, but a large number of copy operations are required which increases memory utilization and memory overhead

Engineering Contradiction:
Improvedata transfer capabilityVSAvoidmemory utilization
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent introduces shared memory segments as an intermediary mechanism between process address spaces. Instead of using sockets that require data copying, the shared memory segment acts as a common memory space that multiple processes can access simultaneously, eliminating the need for copy operations while maintaining reliable data transfer capability

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent merges the data storage function across multiple process address spaces by creating a shared memory segment that is accessible by all processes. This consolidation eliminates redundant data copies and reduces overall memory utilization by combining what would otherwise be separate memory allocations into a single shared resource

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If sockets are used to transport data between process address spaces, then data can be transferred between processes, but copy operations require extra resources such as locking operations which impact web server performance

Engineering Contradiction:
Improvedata transfer capabilityVSAvoidweb server performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The shared memory segment serves as an intermediary that eliminates the need for copy operations and associated locking mechanisms. Processes can directly read and write to the shared memory without the overhead of socket-based copying, thereby improving web server performance while maintaining reliable data transfer

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent extracts and removes the copy operation step from the data transfer process. By using shared memory segments, the unnecessary intermediate copying step is eliminated entirely, allowing processes to access data directly without the performance penalty associated with copy operations and their required locking mechanisms

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11249923B1Using shared memory to transport data between server processes
Publication Date: 2022.02.15 F5 NETWORKS INC
  • US11249923B1 patent drawing
  • US11249923B1 patent drawing
  • US11249923B1 patent drawing

AI summary

Data is dynamically shared from a first process to a second process by creating a shared memory segment, obtaining a file descriptor referencing the shared memory segment, and mapping the shared memory segment in an address space of a first process. The file descriptor is sent to a second process. Responsive to receiving the file descriptor, the shared memory segment is mapped in an address space of the second process. Via the shared memory segment, data from the first process is shared to the second process.