Distributed storage network with coordinated partial task execution and methods for use therewith
First Claim
1. A method for execution by one or more processing modules of one or more computing devices of a dispersed storage and task (DST) network, the method comprises:
- receiving a task for execution by a plurality of distributed storage and task execution units;
receiving and processing data associated with the task to produce encoded data slice groupings, wherein the processing partitions the data associated with the task into a plurality of data partitions and, for each data partition, error encodes the data partition to produce encoded data slices and groups the encoded data slices into the encoded data slice groupings;
partitioning the task into partial tasks, where each of the partial tasks includes a corresponding one of the encoded data slice groupings;
determining a priority level for the task based on an estimated performance impact for the task;
generating a plurality of coordinated partial task requests to the plurality of distributed storage and task execution units, wherein the plurality coordinated partial task requests indicate a plurality of coordinated partial tasks, the priority level, and the corresponding one of the encoded data slice groupings, wherein at least one of the plurality of distributed storage and task execution units communicates coordination information with at least one other of the plurality of distributed storage and task execution units and wherein the coordination information relates to execution of another plurality of coordinated partial tasks;
receiving a plurality of partial task results in response to performance of the plurality of coordinated partial tasks by the plurality of distributed storage and task execution units; and
generating a task result for the task based on the plurality of partial task results.
5 Assignments
0 Petitions
Accused Products
Abstract
A method includes receiving a task for execution by a plurality of distributed storage and task execution units A priority level is determined for the task. A plurality of coordinated partial task requests are generated and sent to the plurality of distributed storage and task execution units, wherein the plurality coordinated partial task requests indicate a plurality of coordinated partial tasks and the priority level. A plurality of partial task results are received in response to performance of the plurality of coordinated partial tasks by the plurality of distributed storage and task execution units. A task result for the task is generated based on the plurality of partial task results.
112 Citations
15 Claims
-
1. A method for execution by one or more processing modules of one or more computing devices of a dispersed storage and task (DST) network, the method comprises:
-
receiving a task for execution by a plurality of distributed storage and task execution units; receiving and processing data associated with the task to produce encoded data slice groupings, wherein the processing partitions the data associated with the task into a plurality of data partitions and, for each data partition, error encodes the data partition to produce encoded data slices and groups the encoded data slices into the encoded data slice groupings; partitioning the task into partial tasks, where each of the partial tasks includes a corresponding one of the encoded data slice groupings; determining a priority level for the task based on an estimated performance impact for the task; generating a plurality of coordinated partial task requests to the plurality of distributed storage and task execution units, wherein the plurality coordinated partial task requests indicate a plurality of coordinated partial tasks, the priority level, and the corresponding one of the encoded data slice groupings, wherein at least one of the plurality of distributed storage and task execution units communicates coordination information with at least one other of the plurality of distributed storage and task execution units and wherein the coordination information relates to execution of another plurality of coordinated partial tasks; receiving a plurality of partial task results in response to performance of the plurality of coordinated partial tasks by the plurality of distributed storage and task execution units; and generating a task result for the task based on the plurality of partial task results. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A dispersed storage and task (DST) client device comprises:
a processing system including a processor and a memory that is configured to; receive a task for execution by a plurality of distributed storage and task execution units; determine a priority level for the task based on an estimated performance impact for the task; receive and process data associated with the task to produce encoded data slice groupings, wherein the process partitions the data associated with the task into a plurality of data partitions and, for each data partition, error encodes the data partition to produce encoded data slices and groups the encoded data slices into the encoded data slice groupings; partition the task into partial tasks, where each of the partial tasks includes a corresponding one of the encoded data slice groupings; generate a plurality of coordinated partial task requests to the plurality of distributed storage and task execution units, wherein the plurality coordinated partial task requests indicate a plurality of coordinated partial tasks, the priority level, and the corresponding one of the encoded data slice groupings, wherein at least one other of the plurality of distributed storage and task execution units generates at least one other of the plurality of partial task results based on the at least one of the plurality of partial task results received from the at least one of the plurality of distributed storage and task execution units; receive a plurality of partial task results in response to performance of the plurality of coordinated partial tasks by the plurality of distributed storage and task execution units; and generate a task result for the task based on the plurality of partial task results. - View Dependent Claims (8, 9, 10, 11)
-
12. A non-transitory computer readable storage medium comprises:
at least one memory section that stores operational instructions that, when executed by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), causes the one or more computing devices to; receive a task for execution by a plurality of distributed storage and task execution units; determine a priority level for the task based on an estimated performance impact for the task; receive and process data associated with the task to produce encoded data slice groupings, wherein the processing partitions the data associated with the task into a plurality of data partitions and, for each data partition, error encodes the data partition to produce encoded data slices and groups the encoded data slices into the encoded data slice groupings; partition the task into partial tasks, where each of the partial tasks includes a corresponding one of the encoded data slice groupings; generate a plurality of coordinated partial task requests to the plurality of distributed storage and task execution units, wherein the plurality coordinated partial task requests indicate a plurality of coordinated partial tasks, the priority level, and the corresponding one of the encoded data slice groupings, wherein at least one of the plurality of distributed storage and task execution units communicates processing resource availability information with at least one other of the plurality of distributed storage and task execution units and wherein the processing resource availability information includes at least one of;
a current processing utilization, an estimated processing utilization, indication of at least one pending one of the plurality of coordinated partial tasks, a completion forecast for the at least one pending one of the plurality of coordinated partial tasks, and a commencement forecast for at least one non-pending one of the plurality of coordinated partial tasks;receive a plurality of partial task results in response to performance of the plurality of coordinated partial tasks by the plurality of distributed storage and task execution units; and generate a task result for the task based on the plurality of partial task results. - View Dependent Claims (13, 14, 15)
Specification