Kernel Send Buffer Aggregates Application Messages

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current communication topologies with many processes/threads per node suffer from performance bottlenecks and scalability issues due to exponential growth in connections, leading to poor network throughput and limited connection capacity, which existing user-level code systems fail to adequately address.

Innovation Solution

Implementing a message aggregation system using kernel-level code that allocates a send buffer within the operating system's kernel to directly copy messages from application buffers, aggregating multiple small messages into fewer larger ones and reducing the number of connections from n^2 to n, thereby improving communication bandwidth and scalability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If user-level code systems are used for message transfer, then implementation simplicity is maintained, but network throughput and communication bandwidth are insufficient

Engineering Contradiction:
Improvenetwork throughputVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a kernel-level message aggregation system as an intermediary between applications and the network interface. The send buffer allocated in kernel space acts as a mediator that receives messages from multiple applications, aggregates them, and transmits them efficiently through a single connection, thereby improving network throughput without requiring complex changes to application-level code.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the message transfer function into two distinct layers: user-level applications that generate messages and a kernel-level aggregation system that handles transmission. This segmentation allows applications to remain simple while the kernel layer handles the complexity of efficient message aggregation and network communication, resolving the contradiction between simplicity and throughput.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If many processes/threads per node are implemented, then communication capability is enhanced, but connection count grows exponentially causing performance bottlenecks

Engineering Contradiction:
Improvecommunication capabilityVSAvoidperformance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent merges multiple communication connections into a single aggregated connection at the kernel level. Instead of each process/thread maintaining separate connections, the kernel-level send buffer consolidates messages from multiple sources and transmits them through one connection, reducing the connection count from exponential n^2 to linear n while preserving full communication capability between all processes.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The kernel-level send buffer serves as a universal communication interface that handles messages from multiple processes and threads simultaneously. This multi-functional component provides a single point of contact that can aggregate and forward messages to any destination, enabling versatile communication without requiring dedicated connections for each process pair.

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

3Manufacturing precision

If multiple small messages are transmitted individually, then message granularity is maintained, but network throughput deteriorates

Engineering Contradiction:
Improvemessage granularityVSAvoidnetwork throughput
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The patent applies preliminary action by aggregating multiple small messages in the kernel-level send buffer before transmission. Messages are collected, combined into larger aggregated packets, and then transmitted in batch. This preliminary aggregation maintains the granularity of individual messages for processing purposes while improving throughput by reducing the number of transmission operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The kernel-level send buffer creates aggregated copies of multiple small messages combined into larger transmission units. The original message granularity is preserved in the buffer structure for individual processing, while the aggregated copy is transmitted over the network, thereby maintaining message precision while improving network throughput through reduced transmission overhead.

Inventive Principle:
Principle #26Copying

4Adaptability or versatility

If connection count is reduced from n^2 to n, then scalability is improved, but communication flexibility may be limited

Engineering Contradiction:
ImprovescalabilityVSAvoidconnection management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The kernel-level message aggregation system acts as an intermediary that manages connections centrally. Instead of each process managing its own connections, the kernel component handles all connection management, aggregation, and routing. This reduces the number of connections from n^2 to n while maintaining communication flexibility through the intermediary's ability to route messages between any processes.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10042682B2Copy message from application buffer to send buffer within kernel
Publication Date: 2018.08.07 HEWLETT PACKARD ENTERPRISE DEV LP
  • US10042682B2 patent drawing
  • US10042682B2 patent drawing
  • US10042682B2 patent drawing

AI summary

A send buffer is allocated within a kernel of an operating system (OS) of a first node. An application of the first node includes an application buffer. A message of an application buffer is copied to the send buffer. The kernel of the first node is to aggregate a plurality of the messages stored at the send buffer into a single transfer and to output the single transfer across a network to a second node.