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:
- employing two or more of a plurality of storage computers in a single physical chassis of two or more physical chassis of the storage system to provide a distributed ordering of an execution path for one or more tasks based on a type of a plurality of operations that are used to perform the one or more tasks when each storage computer in the execution path is also in the single physical chassis, wherein the distributed ordering of the execution path is based on one or more factors that optimize performance of the type of operations used for the one or more tasks including limiting a number of times that traversal of the execution path requires accessing an external network to the single physical chassis that is slower than an internal network to the single physical chassis, and wherein one or more processors of the two or more of the plurality of storage computers execute instructions to perform actions, including;
communicating current status information from each of the plurality of storage computers in the single physical chassis to the network computer, wherein the current status information is based on monitoring performance of the one or more tasks; and
employing one or more conditions for execution of the one or more tasks that are met for execution by each storage computer in the distributed ordering of the execution path to perform further actions, including;
employing a first storage computer in the distributed ordering of the execution path to provide a working set of intermediate results for the one or more tasks executing on data from the first storage computer;
iteratively communicating the provided working set of intermediate results to a next storage computer in the distributed ordering of the execution path, wherein the next storage computer employs the provided working set and data from the next storage computer to generate a next working set of intermediate results for the one or more tasks executing on the next storage computer'"'"'s data until each storage computer'"'"'s data in the distributed ordering of the execution path is employed to provide a corresponding working set of intermediate results based on a previously provided working set of intermediate results; and
providing one or more results for the one or more tasks based on the corresponding working sets of intermediate results provided by each storage computer in the distributed ordering of the execution path.
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.
51 Citations
16 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:
employing two or more of a plurality of storage computers in a single physical chassis of two or more physical chassis of the storage system to provide a distributed ordering of an execution path for one or more tasks based on a type of a plurality of operations that are used to perform the one or more tasks when each storage computer in the execution path is also in the single physical chassis, wherein the distributed ordering of the execution path is based on one or more factors that optimize performance of the type of operations used for the one or more tasks including limiting a number of times that traversal of the execution path requires accessing an external network to the single physical chassis that is slower than an internal network to the single physical chassis, and wherein one or more processors of the two or more of the plurality of storage computers execute instructions to perform actions, including; communicating current status information from each of the plurality of storage computers in the single physical chassis to the network computer, wherein the current status information is based on monitoring performance of the one or more tasks; and employing one or more conditions for execution of the one or more tasks that are met for execution by each storage computer in the distributed ordering of the execution path to perform further actions, including; employing a first storage computer in the distributed ordering of the execution path to provide a working set of intermediate results for the one or more tasks executing on data from the first storage computer; iteratively communicating the provided working set of intermediate results to a next storage computer in the distributed ordering of the execution path, wherein the next storage computer employs the provided working set and data from the next storage computer to generate a next working set of intermediate results for the one or more tasks executing on the next storage computer'"'"'s data until each storage computer'"'"'s data in the distributed ordering of the execution path is employed to provide a corresponding working set of intermediate results based on a previously provided working set of intermediate results; and providing one or more results for the one or more tasks based on the corresponding working sets of intermediate results provided by each storage computer in the distributed ordering of the execution path. - View Dependent Claims (2, 3, 4)
-
5. A storage system for managing tasks 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 logic; and a plurality of processors that are operative to execute the logic to perform actions, including; enabling two or more of a plurality of storage computers in a single physical chassis of two or more physical chassis of the storage system to provide a distributed ordering of an execution path for one or more tasks based on a type of a plurality of operations that are used to perform the one or more tasks when each storage computer in the execution path is also in the single physical chassis, wherein the distributed ordering of the execution path is based on one or more factors that optimize performance of the type of operations used for the one or more tasks including limiting a number of times that traversal of the execution path requires accessing an external network to the single physical chassis that is slower than an internal network to the single physical chassis; enabling one or more of the plurality of storage computers to communicate current status information from each of the plurality of storage computers in the single physical chassis to the network computer, wherein the current status information is based on monitoring performance of the one or more tasks; and enabling one or more processors of the two or more of the plurality of storage computers, to perform actions, including; employing one or more conditions for execution of the one or more tasks that are met for execution by each storage computer in the distributed ordering of the execution path, performing further actions, including; employing a first storage computer in the distributed ordering of the execution path to provide a working set of intermediate results for the one or more tasks executing on data from the first storage computer; iteratively communicating the provided working set of intermediate results to a next storage computer in the distributed ordering of the execution path, wherein the next storage computer employs the provided working set and data from the next storage computer to generate a next working set of intermediate results for the one or more tasks executing on the next storage computer'"'"'s data until each storage computer'"'"'s data in the distributed ordering of the execution path is employed to provide a corresponding working set of intermediate results based on a previously provided working set of intermediate results; and providing one or more results for the one or more tasks to the network computer, wherein the one or more results are based on the corresponding working sets of intermediate results provided by each storage computer in the distributed ordering of the execution path. - View Dependent Claims (6, 7, 8)
-
9. A processor readable non-transitory storage media that includes logic for managing tasks for a storage system over a network, wherein execution of the logic by one or more processors performs actions, comprising:
-
employing two or more of a plurality of storage computers in a single physical chassis of two or more physical chassis of the storage system to provide a distributed ordering of an execution path for one or more tasks based on a type of a plurality of operations that are used to perform the one or more tasks when each storage computer in the execution path is also in the single physical chassis, wherein the distributed ordering of the execution path is based on one or more factors that optimize performance of the type of operations used for the one or more tasks including limiting a number of times that traversal of the execution path requires accessing an external network to the single physical chassis that is slower than an internal network to the single physical chassis; employing one or more of the plurality of storage computers to communicate current status information from each of the plurality of storage computers in the single physical chassis to the network computer, wherein the current status information is based on monitoring performance of the one or more tasks; and employing one or more processors of the two or more of the plurality of storage computers, to perform actions, including; employing one or more conditions for execution of the one or more tasks that are met for execution by each storage computer in the distributed ordering of the execution path, performing further actions, including; employing a first storage computer in the execution path to provide a working set of intermediate results for the one or more tasks executing on data from the first storage computer; iteratively communicating the provided working set of intermediate results to a next storage computer in the distributed ordering of the execution path, wherein the next storage computer employs the provided working set and data from the next storage computer to generate a next working set of intermediate results for the one or more tasks executing on the next storage computer'"'"'s data until each storage computer'"'"'s data in the distributed ordering of the execution path is employed to provide a corresponding working set of intermediate results based on a previously provided working set of intermediate results; and providing one or more results for the one or more tasks based on the corresponding working sets of intermediate results provided by each storage computer in the distributed ordering of the execution path. - View Dependent Claims (10, 11, 12)
-
-
13. A storage computer that is operative for managing tasks in a storage system over a network, wherein the storage system includes a plurality of storage computers, and wherein each storage computer comprises:
-
a transceiver that is operative to communicate over a network; a memory that is operative to store logic; and one or more processors that are operative to execute instructions that enable actions, including; enabling two or more of a plurality of storage computers in a single physical chassis of two or more physical chassis of the storage system to provide a distributed ordering of an execution path for one or more tasks based on a type of a plurality of operations that are used to perform the one or more tasks when each storage computer in the execution path is also in the single physical chassis, wherein the distributed ordering of the execution path is based on one or more factors that optimize performance of the type of operations used for the one or more tasks including limiting a number of times that traversal of the execution path requires accessing an external network to the single physical chassis that is slower than an internal network to the single physical chassis; communicating current status information from each of the plurality of storage computers in the single physical chassis to the network computer, wherein the current status information is based on monitoring performance of the one or more tasks; and enabling one or more processors of the two or more of the plurality of storage computers, to enable actions, including; employing one or more conditions for execution of the one or more tasks that are met for execution by each storage computer in the distributed ordering of the execution path to perform further actions, including; employing a first storage computer in the execution path to provide a working set of intermediate results for the one or more tasks executing on data from the first storage computer; iteratively communicating of the provided working set of intermediate results to a next storage computer in the execution path, wherein the next storage computer employs the provided working set and data from the next storage computer to generate a next working set of intermediate results for the one or more tasks executing on the next storage computer'"'"'s data until each storage computer'"'"'s data in the distributed ordering of the execution path is employed to provide a corresponding working set of intermediate results based on a previously provided working set of intermediate results; and providing of one or more results for the one or more tasks based on the corresponding working sets of intermediate results provided by each storage computer in the distributed ordering of the execution path. - View Dependent Claims (14, 15, 16)
-
Specification