Hierarchical Thread Storage in Common Software Environment
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional programming environments for data storage devices are often static, non-expandable, and lack a common interface for integrating software components, making it difficult to create flexible and platform-independent software solutions that can handle varying hardware and software platforms effectively.
Innovation Solution
A common software environment (CSE) is introduced that leverages existing platform capabilities and technologies to provide a scalable, unified architecture for managing network-attached storage (NAS) and object and storage block services, enabling openness, application awareness, and ease of use through modular building blocks and well-defined interfaces, facilitating the integration of software components across different platforms.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a common software environment with modular building blocks is introduced, then adaptability and ease of integration are improved, but device complexity increases
Solution Approach 1:
The software environment is divided into distinct modular building blocks including thread creation interfaces, data area management components, and code layer abstractions. Each module performs a specific function and can be independently configured, allowing the system to adapt to different platforms while maintaining manageable complexity through clear separation of concerns.
Solution Approach 2:
The common software environment provides universal interfaces and data structures that can operate across multiple hardware and software platforms. The thread creation mechanism and data area management are designed to be platform-agnostic, enabling the same software components to function universally across different storage devices and operating systems.
2Reliability
If thread-specific context information is created and initialized at each code layer, then reliability and proper code execution are improved, but memory usage and processing overhead increase
Solution Approach 1:
Thread-specific context information is organized in a nested hierarchical structure where each code layer maintains its own data area that contains or references information needed by subordinate layers. This nesting allows comprehensive thread context management while avoiding duplication of information across all layers, as each layer only stores the specific data it requires.
3Reliability
If a callback call chain traversing code layers in reverse order is implemented, then proper resource cleanup and thread execution are improved, but processing time increases
Solution Approach 1:
The callback call chain is pre-configured during thread creation, with each code layer registering its cleanup and execution callbacks in advance. When thread execution begins, the pre-established callback chain enables systematic resource cleanup and proper execution flow without requiring complex runtime decision-making, reducing the time overhead compared to ad-hoc resource management approaches.
Data Source
AI summary
Described are techniques for creating a thread. A first plurality of calls are issued to create the thread. The first plurality of calls are executed in the context of an executing first thread and form a call chain traversing a plurality of code layers in a first order. A data area including thread-specific context information is created and initialized at each of the plurality of code layers when code of each code layer is invoked in accordance with the interface of each code layer to create the thread. Each of the plurality of code layers is included in a registered set. Executing the thread includes issuing a second plurality of calls traversing said plurality of code layers in an order that is a reverse of the first order. The second plurality of calls result in transferring control to a first body of code for the thread.


