Computational Storage Mediation Through Legacy Client Interfaces
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage systems face challenges in efficiently performing computational storage operations through legacy client storage interfaces, as file APIs do not support in-place writes and object APIs lack directory management, limiting the flexibility and efficiency of data operations.
Innovation Solution
A computer system and method that converts front-end storage commands into back-end commands, enabling computational storage operations by identifying and executing operations associated with storage units, allowing for data transformation and derivation without modifying the client application or storage interfaces.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If file APIs are used for storage operations, then directory management and in-place writes are supported, but computational storage operations cannot be enabled through legacy interfaces
Solution Approach 1:
A computational storage operation handler is introduced as an intermediary component between the legacy storage interface and the storage system. This handler receives front-end storage commands, identifies computational storage operations, converts them to back-end commands, and executes them, thereby enabling computational storage operations through existing interfaces without modifying client applications
Solution Approach 2:
The storage command processing is segmented into distinct phases: receiving front-end commands, identifying computational operations, converting to back-end commands, and execution. This segmentation allows the complex functionality to be modularized and integrated into the existing interface architecture
2Adaptability or versatility
If object APIs are used for storage operations, then atomic full-object writes and encryption are supported, but in-place writes and directory management are not available
Solution Approach 1:
The computational storage operation handler acts as a mediator that translates diverse front-end storage commands (including in-place writes and directory operations) into appropriate back-end commands, enabling these operations through object API interfaces without requiring changes to client applications
Solution Approach 2:
The handler provides universal support for multiple types of storage operations (read, write, delete, in-place updates, directory management) through a single integrated component, making the legacy interface versatile enough to handle various computational storage operations
3Reliability
If storage operations are performed through legacy interfaces, then client application compatibility is maintained, but data transformation and derivation operations are limited
Solution Approach 1:
The handler serves as an intermediary layer that preserves legacy interface compatibility while introducing advanced data transformation and derivation capabilities. It receives commands through traditional interfaces and executes complex computational operations in the background
Solution Approach 2:
Computational storage operations are performed in advance or transparently during data storage operations. The handler identifies and executes transformation/derivation operations as part of the storage process, enabling data to be transformed before being stored or accessed through legacy interfaces
Data Source
AI summary
Provided are techniques for enabling computational storage operations through legacy client storage interfaces. A front-end storage command for an object is received, where the object comprises a storage unit identifier and data. A storage unit is identified based on the identifier. One or more computational storage operations are identified that are associated with the storage unit and with a type of the front-end storage command. The one or more computational storage operations are converted into one or more back-end storage commands. The front-end storage command and the one or more backend storage commands are executed.


