Dependency-Based Task Scheduling in Storage Area Networks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional storage area network management applications are inflexible and require application programmers and administrators to create composite tasks and execution strategies to manage task dependencies, making it cumbersome to represent and execute application-specific tasks in a natural manner.
Innovation Solution
A dependency-based model that allows programmers and administrators to define task dependencies without creating composite tasks, using a task manager to generate a scheduling data structure for optimal task execution and thread allocation, enabling simultaneous execution of tasks with no interdependencies and minimizing resource consumption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional execution strategy is used to manage task dependencies, then task execution ordering is ensured, but system flexibility and ease of task representation deteriorate
Solution Approach 1:
The system enables programmers to assert dependencies among tasks directly without requiring composite tasks or execution strategies. The task manager automatically generates the execution hierarchy based on these asserted dependencies, making the system self-configuring and eliminating the need for manual execution strategy creation.
Solution Approach 2:
Instead of requiring programmers to create composite tasks and execution strategies to enforce task ordering (top-down approach), the invention inverts the approach by having programmers simply assert dependencies and allowing the system to automatically generate the execution hierarchy (bottom-up approach).
2Reliability
If composite tasks and execution strategies are created to manage task dependencies, then task ordering is maintained, but system complexity and programming burden increase
Solution Approach 1:
The invention extracts the complexity of execution strategy creation and composite task management from the programmer's responsibility. The task manager automatically generates the execution hierarchy based on simple dependency assertions, removing the burden of creating and managing composite tasks while maintaining reliable task ordering.
3Reliability
If sequential execution strategy is used for tasks, then task dependency ordering is ensured, but task execution efficiency and productivity decrease
Solution Approach 1:
The system dynamically generates the execution hierarchy based on the asserted dependencies among tasks. This allows the system to automatically determine which tasks can execute in parallel and which must execute sequentially, optimizing task execution efficiency while maintaining dependency ordering without requiring predefined static execution strategies.
Data Source
AI summary
In a storage area network, a task manager identifies a set of preconditions for execution of storage management tasks. The set of preconditions establish dependencies between tasks in the storage area network. Execution of the tasks is contingent upon satisfaction of the set of preconditions. In addition, the task manager generates a scheduling data structure based on the set of preconditions in order to schedule execution of the tasks. As a result, the task manager can utilize the scheduling data structure to optimize task execution in the storage area network (e.g., by applying a task optimization algorithm). Such optimization minimizes resource consumption (e.g., thread allocation, processor time commitment, etc.) in the storage area network during execution of the tasks.


