Communication Adapter Offloading for Network Request Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In cluster computing, a significant fraction of server CPU time is devoted to servicing network requests, with the CPU cost of initiating processes and accessing packets through different software layers being substantial, despite the minor work performed at the responding server.

Innovation Solution

Offloading computation to a communication adapter by executing procedure images in communication adapter memory, where a procedure image is an executable image that performs application layer processing, allowing the communication adapter to handle tasks independently of the host processor, thereby reducing CPU load.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If computation is performed on the host processor for network requests, then processing capability is sufficient, but CPU time and latency increase significantly

Engineering Contradiction:
Improvenetwork request processing throughputVSAvoidCPU time for network operations
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the network request processing function from the host CPU by introducing a separate communication adapter with its own processor. The adapter handles packet reception, procedure image execution, and memory operations independently, dividing the system into distinct functional units that can operate in parallel without contending for CPU resources.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The communication adapter acts as an intermediary between the network and the host application. It receives network packets, executes appropriate procedure images from shared memory, performs data manipulation, and commits results back to host memory without requiring host CPU intervention for each network operation, thus reducing CPU time while maintaining processing capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the communication adapter executes procedure images independently, then CPU load is reduced, but memory access coordination becomes more complex

Engineering Contradiction:
Improvehost CPU availability for other tasksVSAvoidmemory latch coordination mechanism
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The communication adapter performs self-service by independently acquiring latches on shared memory blocks before executing procedure images and committing results. This self-service mechanism allows the adapter to autonomously manage memory access coordination without requiring host CPU intervention, reducing CPU load while handling the complexity of synchronized memory access through dedicated latch management logic.

Inventive Principle:
Principle #25Self-service

3Ease of operation

If procedure images are stored in shared memory, then adapter can access them independently, but memory consistency requirements increase

Engineering Contradiction:
Improveadapter independence from host processorVSAvoidmemory consistency and data integrity
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The system uses preliminary action by requiring the communication adapter to acquire latches on shared memory blocks before reading or writing procedure images and data. This preliminary latch acquisition ensures that the adapter reads consistent data and that its writes are not interfered with by host memory operations, maintaining memory consistency and data integrity while allowing independent adapter operation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8782161B2Method and system for offloading computation flexibly to a communication adapter
Publication Date: 2014.07.15 ORACLE INT CORP
  • US8782161B2 patent drawing
  • US8782161B2 patent drawing
  • US8782161B2 patent drawing

AI summary

A method for offloading computation flexibly to a communication adapter includes receiving a message that includes a procedure image identifier associated with a procedure image of a host application, determining a procedure image and a communication adapter processor using the procedure image identifier, and forwarding the first message to the communication adapter processor configured to execute the procedure image. The method further includes executing, on the communication adapter processor independent of a host processor, the procedure image in communication adapter memory by acquiring a host memory latch for a memory block in host memory, reading the memory block in the host memory after acquiring the host memory latch, manipulating, by executing the procedure image, the memory block in the communication adapter memory to obtain a modified memory block, committing the modified memory block to the host memory, and releasing the host memory latch.