Adaptation Layer Zero-Copy Buffer Reshuffling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional networking operations require unnecessary copying of incoming network data, consuming valuable host processor cycles and negatively impacting network performance due to synchronous socket interfaces that limit throughput.

Innovation Solution

Implementing a zero-copy design with an adaptation layer between the socket and transport layers of the protocol stack, allowing direct allocation and reassembly of incoming data into specific memory locations without intermediate copying, and using expected sequence numbers to ensure correct buffer placement.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional networking operations use random memory allocation with copying, then data can be received and processed, but host processor cycles are consumed unnecessarily

Engineering Contradiction:
Improvenetwork throughputVSAvoidhost processor cycles
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent applies preliminary action by having the application post buffers to the NIC before data arrives. The buffers are pre-positioned in memory with expected sequence numbers assigned, so when data arrives it can be directly placed into the correct buffer without requiring subsequent copying operations. This eliminates the need for host processor cycles to be spent on copying data after receipt.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts the copying operation from the conventional networking pipeline by introducing an adaptation layer that directly maps incoming data to pre-posted buffers. The adaptation layer removes the intermediate copying step that traditionally occurs between random memory allocation and final buffer placement, allowing data to flow directly from NIC to application buffer without host processor intervention for copying.

Inventive Principle:
Principle #2Taking out (Extraction)

2Ease of operation

If synchronous socket interfaces are implemented, then application can post single read buffer per reader thread, but network performance and throughput are negatively affected

Engineering Contradiction:
Improvebuffer posting simplicityVSAvoidnetwork throughput
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent applies dynamics by transitioning from synchronous to asynchronous buffer posting. Instead of blocking until data arrives, the application can post multiple buffers asynchronously to the NIC, and the adaptation layer dynamically manages the mapping between incoming data sequence numbers and posted buffers. This allows the system to adapt to varying network conditions without blocking, improving throughput while maintaining operational simplicity through the adaptation layer's automated buffer management.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The adaptation layer serves as an intermediary between the socket layer and transport layer, managing the complexity of asynchronous buffer posting and data mapping. It abstracts the asynchronous operation from the application, allowing simple buffer posting while handling the complexity of matching incoming data to correct buffers through expected sequence numbers, thus improving throughput without sacrificing ease of operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If data is placed at random memory locations first, then incoming data can be received, but additional copying operations are required to reach appropriate locations

Engineering Contradiction:
Improvedata receipt speedVSAvoidcopying operation time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent eliminates the time loss from copying by applying preliminary action - buffers are posted to the NIC before data arrives, with expected sequence numbers assigned. This pre-positioning ensures that when data arrives, it can be directly placed into the correct buffer without requiring subsequent copying operations, thus eliminating both the copying time and the random placement step.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7769905B1Adapting network communication to asynchronous interfaces and methods
Publication Date: 2010.08.03 ORACLE AMERICAN INC
  • US7769905B1 patent drawing
  • US7769905B1 patent drawing
  • US7769905B1 patent drawing

AI summary

A method for receiving network communication at a host is provided. The host has a network interface card (NIC) for receiving the network communication from a network. Data is requested through an application. A set of buffers (e.g., A, B, C, . . . ) is posted to system memory. Information regarding the set of buffers is passed to an adaptation layer. The adaptation layer is interposed between a socket layer and a transport layer of the protocol stack. The set of buffers identified in the adaptation layer is assigned expected sequence numbers (e.g., SN1, SN2, SN3 . . . ) for a sequence of incoming data (e.g., S1, S2, S3, . . . ). The adaptation layer reshuffles data of the sequence of incoming data to the set of buffers according to the expected sequence numbers. The expected sequence numbers are consecutively ordered to ensure that the sequence of incoming data in the ordered sequence is placed to the set of buffers according to the expected sequence numbers.