Plugin Framework Abstraction for Portable Computational Storage Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Host processors are dependent on specific details of storage devices, leading to application failures if storage devices are removed or applications are moved to different hosts, as they assume particular device features like compression or encryption algorithms.
Innovation Solution
A framework with plugins that abstract storage device features, allowing applications to issue requests without identifying specific devices, using an API to manage plugin registration and service delivery, enabling seamless integration with various storage devices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the host processor uses specific storage device features (compression, encryption algorithms), then the storage device can provide optimized functionality, but the application fails when storage devices are removed or moved to different hosts
Solution Approach 1:
The patent introduces a host-level abstraction layer that acts as an intermediary between applications and storage devices. This abstraction layer provides a unified interface that translates application requests into device-specific operations, allowing applications to remain agnostic of the underlying storage device details while maintaining reliable execution across different devices.
Solution Approach 2:
The host-level abstraction layer implements universal interfaces that can work with multiple types of storage devices featuring different capabilities (compression, encryption, etc.). The system designs interfaces to accommodate varying device features, enabling the same application to function reliably across diverse storage devices without modification.
2Ease of operation
If the host needs to know particulars about the storage device, then the storage device can be controlled precisely, but the host becomes dependent on the availability of the storage device
Solution Approach 1:
The patent segments the storage system into distinct layers: a host-level abstraction layer that handles high-level operations and a storage device layer that handles device-specific operations. This segmentation allows the host to control storage operations precisely through the abstraction layer without being coupled to specific device details, thereby maintaining host independence.
Solution Approach 2:
The host-level abstraction layer serves as a mediator that provides precise control over storage operations while shielding the host from device-specific particulars. The abstraction layer translates generic control commands into device-specific operations, enabling precise control without creating host dependency on specific storage devices.
3Productivity
If applications are designed to work with specific storage devices, then performance can be optimized for those devices, but the application cannot be moved to different hosts or devices
Solution Approach 1:
The patent implements universal interfaces at the host level that can work with multiple storage device types and features. The abstraction layer provides consistent performance optimization across different devices by translating application requests into device-appropriate operations, enabling applications to maintain optimized performance while being portable across different hosts and storage devices.
Solution Approach 2:
The system dynamically adapts to different storage devices through the host-level abstraction layer, which automatically adjusts its behavior based on the capabilities of the connected storage device. This dynamic adaptation allows applications to achieve optimized performance for each specific device while maintaining the same application code, thereby enabling both performance optimization and portability.
Data Source
AI summary
A system is disclosed. The system may include a processor, a storage device, and aa computational device. A plugin may be associated with a service on the computational device. A framework may be implemented in software and configured to be executed on the processor. The framework may include a receiver to receive a service request from an application configured to be executed on the processor and a service response from the plugin. The service request may identify a service requested by the application. The framework may also include a plugin selector to select the plugin based at least in part on the service. The framework may also include a transmitter to deliver the service request to the plugin and the service response to the application. The application may be agnostic to the plugin and the computational device.


