Distributed storage data repair air via partial data rebuild within an execution path
First Claim
1. A method for managing tasks for a storage system over a network using a network computer that executes instructions that perform actions, comprising:
- generating an execution path for at least one task based on a type of the at least one task and at least one characteristic of the storage system, wherein the execution path includes a plurality of storage computers of the storage system;
providing the at least one task to each storage computer in the execution path, wherein each storage computer comprises a CPU complex and a storage device; and
employing the CPU complexes of the plurality of storage computers, to perform actions, including;
communicating current status information from the plurality of storage computers to the network computer, wherein the status information is based on monitoring performance of the at least one task; and
when one or more conditions for execution of the at least one task are met for execution by each storage computer in the execution path, performing further actions, including;
generating a working set of intermediate results from the at least one task executing on data from a storage computer initially in the execution path;
iteratively communicating a previously generated working set to a next storage computer in the execution path, wherein the next storage computer employs the previously generated working set and data from the next storage computer to generate a next working set of intermediate results for the at least one task executing on the next storage computer'"'"'s data until each storage computer'"'"'s data in the execution path has been employed to generate each corresponding working set;
when each storage computer in the execution path is in a single physical chassis, determining a distributed execution path within the single physical chassis to provide working set information to each of the storage computers in the single physical chassis;
generating at least one result for the at least one task based on each working set from each storage computer in the execution path; and
storing the at least one result in at least one of the storage computers in the storage system.
3 Assignments
0 Petitions
Accused Products
Abstract
Embodiments are directed towards managing the distribution of tasks in a storage system. An execution path for tasks may be generated based on the type of the task and characteristics of the storage system such that the execution path includes storage computers in a storage system. The tasks may be provided to each storage computer in the execution path. A working set of intermediate results may be generated on the storage computer in the execution path. If there is more than one storage computer in the execution path, working sets may be iteratively communicated to a next storage computer in the execution path such that the next storage computer employs a previously generated working set to generate a next working set until each storage computer in the execution path has been employed to generate a working set. The results may be stored on the storage computers.
40 Citations
30 Claims
-
1. A method for managing tasks for a storage system over a network using a network computer that executes instructions that perform actions, comprising:
-
generating an execution path for at least one task based on a type of the at least one task and at least one characteristic of the storage system, wherein the execution path includes a plurality of storage computers of the storage system; providing the at least one task to each storage computer in the execution path, wherein each storage computer comprises a CPU complex and a storage device; and employing the CPU complexes of the plurality of storage computers, to perform actions, including; communicating current status information from the plurality of storage computers to the network computer, wherein the status information is based on monitoring performance of the at least one task; and when one or more conditions for execution of the at least one task are met for execution by each storage computer in the execution path, performing further actions, including; generating a working set of intermediate results from the at least one task executing on data from a storage computer initially in the execution path; iteratively communicating a previously generated working set to a next storage computer in the execution path, wherein the next storage computer employs the previously generated working set and data from the next storage computer to generate a next working set of intermediate results for the at least one task executing on the next storage computer'"'"'s data until each storage computer'"'"'s data in the execution path has been employed to generate each corresponding working set; when each storage computer in the execution path is in a single physical chassis, determining a distributed execution path within the single physical chassis to provide working set information to each of the storage computers in the single physical chassis; generating at least one result for the at least one task based on each working set from each storage computer in the execution path; and storing the at least one result in at least one of the storage computers in the storage system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for managing tasks for a storage system over a network, comprising:
a network computer comprising; a transceiver that is operative to communicate over the network; a memory that is operative to store at least instructions; and a processor device that is operative to execute instructions that enable actions, including; generating an execution path for at least one task based on a type of the at least one task and at least one characteristic of the storage system, wherein the execution path includes a plurality of storage computers of the storage system; providing the at least one task to each storage computer in the execution path, wherein each storage computer comprises a CPU complex and a storage device; and employing the CPU complexes of the plurality of storage computers, to perform actions, including; communicating current status information from the plurality of storage computers to the network computer, wherein the status information is based on monitoring performance of the at least one task; and when one or more conditions for execution of the at least one task are met for execution by each storage computer in the execution path, performing further actions, including; generating a working set of intermediate results from the at least one task executing on data from a storage computer initially in the execution path; iteratively communicating a previously generated working set to a next storage computer in the execution path, wherein the next storage computer employs the previously generated working set and data from the next storage computer to generate a next working set of intermediate results for the at least one task executing on the next storage computer'"'"'s data until each storage computer'"'"'s data in the execution path has been employed to generate each corresponding working set; when each storage computer in the execution path is in a single physical chassis, determining a distributed execution path within the single physical chassis to provide working set information to each of the storage computers in the single physical chassis; generating at least one result for the at least one task based on each working set from each storage computer in the execution path; and storing the at least one result in at least one of the storage computers in the storage system; and a client computer, comprising; a transceiver that is operative to communicate over the network; a memory that is operative to store at least instructions; and a processor device that is operative to execute instructions that enable actions, including; providing the at least one task to the network computer. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
17. A processor readable non-transitory storage media that includes instructions for managing tasks for a storage system over a network, wherein execution of the instructions by a processor device enables actions, comprising:
-
generating an execution path for at least one task based on a type of the at least one task and at least one characteristic of the storage system, wherein the execution path includes a plurality of storage computers of the storage system; providing the at least one task to each storage computer in the execution path, wherein each storage computer comprises a CPU complex and a storage device; and employing the CPU complexes of the plurality of storage computers, to perform actions, including; communicating current status information from the plurality of storage computers to the network computer, wherein the status information is based on monitoring performance of the at least one task; and when one or more conditions for execution of the at least one task are met for execution by each storage computer in the execution path, performing further actions, including; generating a working set of intermediate results from the at least one task executing on data from a storage computer initially in the execution path; iteratively communicating a previously generated working set to a next storage computer in the execution path, wherein the next storage computer employs the previously generated working set and data from the next storage computer to generate a next working set of intermediate results for the at least one task executing on the next storage computer'"'"'s data until each storage computer'"'"'s data in the execution path has been employed to generate each corresponding working set; when each storage computer in the execution is in a single physical chassis, determining a distributed execution path within the single physical chassis to provide working set information to each of the storage computers in the single physical chassis; generating at least one result for the at least one task based on each working set from each storage computer in the execution path; and storing the at least one result in at least one of the storage computers in the storage system. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
-
24. A network computer that is operative for managing tasks for a storage system over a network using a network computer, comprising:
a transceiver that is operative to communicate over a network; a memory that is operative to store at least instructions; and a processor device that is operative to execute instructions that enable actions, including; generating an execution path for at least one task based on a type of the at least one task and at least one characteristic of the storage system, wherein the execution path includes a plurality of storage computers of the storage system; providing the at least one task to each storage computer in the execution path, wherein each storage computer comprises a CPU complex and a storage device; and employing the CPU complexes of the plurality of storage computers, to perform actions, including; communicating current status information from the plurality of storage computers to the network computer, wherein the status information is based on monitoring performance of the at least one task; and when one or more conditions for execution of the at least one task are met for execution by each storage computer in the execution path, performing further actions, including;
generating a working set of intermediate results from the at least one task executing on data from a storage computer initially in the execution path;
iteratively communicating a previously generated working set to a next storage computer in the execution path, wherein the next storage computer employs the previously generated working set and data from the next storage computer to generate a next working set of intermediate results for the at least one task executing on the next storage computer'"'"'s data until each storage computer'"'"'s data in the execution path has been employed to generate each corresponding working set;
when each storage computer in the execution path is in a single physical chassis, determining a distributed execution path within the single physical chassis to provide working set information to each of the storage computers in the single physical chassis;
generating at least one result for the at least one task based on each working set from each storage computer in the execution path; and
storing the at least one result in at least one of the storage computers in the storage system.- View Dependent Claims (25, 26, 27, 28, 29, 30)
Specification