Tyche Network Storage Protocol Adaptive Batching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current network storage protocols over Ethernet face inefficiencies due to high host-overhead, limited scalability, and inability to utilize multiple network interface controllers (NICs) effectively, resulting in suboptimal I/O throughput and increased CPU utilization.
Innovation Solution
The Tyche network storage protocol is designed to operate directly on Ethernet without hardware support, employing copy-reduction techniques, pre-allocation of memory, custom packet processing, and adaptive batching to reduce overhead and enhance scalability with multiple NICs and cores, while maintaining low CPU utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional network storage protocols are used over Ethernet, then compatibility with existing infrastructure is maintained, but host-overhead is high and I/O throughput is limited
Solution Approach 1:
The protocol segments the I/O path into distinct components: a block layer for I/O management and a network layer for packet transmission. This segmentation allows each layer to be optimized independently, reducing overall host-overhead while maintaining high throughput by separating concerns between data processing and network communication.
Solution Approach 2:
The patent extracts critical functionality from the traditional stack by implementing custom packet processing that bypasses conventional Ethernet processing paths. By taking out unnecessary processing steps and implementing minimalistic packet handling, the system reduces host-overhead while preserving essential I/O throughput capabilities.
2Productivity
If multiple network interface controllers (NICs) are deployed to increase throughput, then link utilization improves, but device complexity and synchronization overhead increase
Solution Approach 1:
Each NIC is assigned to a dedicated channel with its own independent packet queues and buffers. This segmentation isolates synchronization concerns to the channel level rather than requiring global synchronization across all NICs, enabling multiple NICs to operate in parallel with minimal coordination overhead.
Solution Approach 2:
The patent introduces channel-level abstraction that adds a new dimension to NIC management. Instead of managing NICs directly at the system level, the channel layer provides an intermediate abstraction that simplifies resource allocation and reduces synchronization complexity when scaling to multiple NICs.
3Productivity
If protocol overheads are reduced for Ethernet storage access, then I/O throughput improves, but protocol design complexity increases
Solution Approach 1:
The protocol is divided into distinct block layer and network layer components, each with well-defined interfaces and responsibilities. This segmentation makes the complex protocol easier to design and implement by breaking down functionality into manageable units that can be developed and tested independently.
Solution Approach 2:
The protocol design incorporates universal data structures and processing mechanisms that can handle various I/O operations through a unified framework. By creating multi-functional components that serve multiple purposes, the patent reduces overall protocol complexity while maintaining high throughput performance.
4Use of energy by moving object
If copy-reduction techniques and pre-allocation of memory are implemented, then CPU utilization decreases, but memory management complexity increases
Solution Approach 1:
Memory buffers and packet queues are pre-allocated during system initialization and channel setup. By performing this allocation action in advance, the system avoids CPU-intensive dynamic memory management during I/O operations, significantly reducing CPU utilization while the static allocation structure simplifies runtime memory handling.
Solution Approach 2:
The protocol implements self-managed memory pools where buffers are automatically allocated and freed through simple pointer manipulation rather than complex memory management calls. This self-service approach reduces CPU overhead by eliminating the need for expensive memory allocation functions during high-speed I/O processing.
Data Source
AI summary
A computer network-storage protocol system, including at least one initiator device having an initiator block layer and an initiator network layer interfacing with a first network driver; at least one target device having a target block layer and a target network layer interfacing with a second network driver; a plurality of network interface controllers (NICs) interfacing with the first network driver and the second network driver; a plurality of distinct channels, each channel establishing a connection between the initiator device and the target device and being configured to transmit packets between the initiator device and the target device, wherein each channel is mapped to only one NIC; and wherein the initiator block layer includes at least one request message buffer and at least one data message buffer.


