Distributed storage network with coordinated partial task execution and methods for use therewith

US9848044B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9848044-B2
Application numberUS-201414287499-A
CountryUS
Kind codeB2
Filing dateMay 27, 2014
Priority dateJul 31, 2013
Publication dateDec 19, 2017
Grant dateDec 19, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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. 2. The method of claim 1 wherein at least one of the plurality of distributed storage and task execution units communicates at least one of the plurality of partial task results with at least one other of the plurality of distributed storage and task execution units. 3. The method of claim 2 wherein the 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. 4. The method of claim 1 wherein the task includes one of: aborted transaction clean up from at least one prior aborted task, a data migration, expired data clean up corresponding to stored data that has expired, a snapshot clean up, an index health check, a segment health check, a scan for missing ones of encoded data slices, and a system maintenance task. 5. The method of claim 1 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; 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. 6. The method of claim 1 wherein each the plurality of distributed storage and task execution units performs its generated partial task upon its corresponding one of the encoded data slice groupings to produce the partial task results. 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. 8. The DST client device of claim 7 wherein the task includes one of: aborted transaction clean up from at least one prior aborted task, a data migration, expired data clean up corresponding to stored data that has expired, a snapshot clean up, an index health check, a segment health check, a scan for missing ones of encoded data slices, and a system maintenance task. 9. The DST client device of claim 7 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; 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. 10. The DST client device of claim 7 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; wherein the coordination information relates to execution of another plurality of coordinated partial tasks. 11. The dispersed storage and task (DST) client device of claim 7 wherein each the plurality of distributed storage and task execution units performs its generated partial task upon its corresponding one of the encoded data slice groupings to produce the partial task results. 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 ass

Assignees

Inventors

Classifications

  • Plurality of storage devices · CPC title

  • for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title

  • Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs (mappping at compile time, see G06F8/451) · CPC title

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title

  • Parity data used in redundant arrays of independent storages, e.g. in RAID systems · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9848044B2 cover?
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 ta…
Who is the assignee on this patent?
Cleversafe Inc, IBM
What technology area does this patent fall under?
Primary CPC classification H04L67/1097. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 19 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).