Virtual Storage Offload Engine for Parallel Query Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data processing systems experience delays and inefficiencies due to the execution of complex queries on non-volatile storage systems, particularly in cloud-based environments, where hardware offload engines are limited by conventional I/O channels and lack flexibility, leading to high latency and reduced throughput.
Innovation Solution
Implementing a hardware offload engine represented as a virtual storage capacity, allowing offload commands to be transmitted as regular data write commands, parsed, and executed in parallel via virtual I/O channels, thereby enhancing flexibility and reducing latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If offload commands are transmitted through conventional I/O channels, then the hardware offload engine can execute operators on stored data, but the system experiences high latency and reduced throughput due to limited channel capacity and sequential processing
Solution Approach 1:
The patent segments the I/O channel into multiple virtual channels, allowing parallel transmission of multiple offload commands. Each virtual channel can independently handle commands, enabling concurrent execution of operators on different data files, thereby increasing throughput and reducing latency
Solution Approach 2:
The patent introduces a new dimension of parallelism by implementing virtual I/O channels that operate simultaneously within the existing physical channel framework. This multi-dimensional approach allows multiple command streams to coexist and execute in parallel without requiring additional physical hardware channels
2Adaptability or versatility
If the hardware offload engine is represented as a storage device with virtual storage capacity, then offload commands can be transmitted as regular data write commands, but the system requires kernel modifications to support this abstraction
Solution Approach 1:
The hardware offload engine is represented as a storage device with virtual storage capacity, allowing it to receive both regular data write commands and offload commands through the same interface. This universal representation enables the system to handle multiple command types without requiring separate processing paths or kernel modifications
Solution Approach 2:
The patent uses a virtual storage capacity representation that creates an abstract copy of the hardware offload engine's interface. This virtual representation allows the host system to interact with the offload engine using standard storage I/O operations, simplifying integration without requiring changes to the operating system kernel
3Productivity
If multiple offload commands are processed sequentially through a single I/O channel, then the hardware offload engine can maintain simple architecture, but the system experiences reduced throughput and increased processing time
Solution Approach 1:
The single I/O channel is segmented into multiple virtual channels, each capable of independently transmitting offload commands to the hardware offload engine. This segmentation enables parallel command processing while maintaining a relatively simple physical architecture, as the virtual channels are implemented through software abstraction rather than additional physical hardware
Solution Approach 2:
The patent implements dynamic virtual channel allocation that can adapt to varying workloads. The system can dynamically create, allocate, and manage virtual channels based on the number and type of offload commands being processed, allowing the architecture to scale flexibly without requiring fixed additional hardware resources
Data Source
AI summary
A system includes a host device, a hardware offload engine, and a non-volatile storage to store on-disk data. The hardware offload engine is represented to the host device as being a storage having a virtual storage capacity, and the host device transmits an offload command to the hardware offload engine as a data write command without requiring kernel changes or special drivers.


