Serverless computing and task scheduling

US10884807B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10884807-B2
Application numberUS-201715485910-A
CountryUS
Kind codeB2
Filing dateApr 12, 2017
Priority dateApr 12, 2017
Publication dateJan 5, 2021
Grant dateJan 5, 2021

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.

In one embodiment, a method for serverless computing comprises: receiving a task definition, wherein the task definition comprises a first task and a second task chained to the first task; adding the first task and the second task to a task queue; executing the first task from the task queue using hardware computing resources in a first serverless environment associated with a first serverless environment provider; and executing the second task from the task queue using hardware computing resources in a second serverless environment selected based on a condition on an output of the first task.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for serverless computing, comprising: receiving a task definition, wherein the task definition comprises a first task and a second task chained to the first task; adding the first task and the second task to a task queue; determining a set of dependency constraints for each task of a task chain in the task queue; determining a cost and a set of capabilities associated with each serverless computing environment; executing the first task from the task queue using hardware computing resources in a first serverless environment associated with a first serverless environment provider; first selecting, based on sets of dependency constraints, the costs, the sets of capabilities, and an output of the first task, a second serverless environment out of a plurality of serverless environments to execute the second task from the task queue; and executing the second task from the task queue using hardware computing resources in the second serverless environment. 2. The method of claim 1 , wherein the task definition comprises a first task identifier identifying the first task, a first pointer to input data, a task action function code, a second pointer to output data, and a second task identifier identifying the second task. 3. The method of claim 1 , wherein the first selecting the serverless computing environment comprises minimizing sum of costs for all tasks in the task chain and ensuring the set of dependency constraints for each task in the task chain is satisfied by the set of capabilities associated with the serverless environment selected for each task in the task chain. 4. The method of claim 1 , wherein the set of dependency constraints comprises code for the task, and the set of capabilities comprises a programming language that a serverless environment can execute. 5. The method of claim 1 , wherein a set of dependency constraints for a given task comprises a data locality compliance rule. 6. The method of claim 1 , wherein a set of dependency constraints for a given task comprises one or more requirements specified in a task definition associated with the given task. 7. The method of claim 1 , wherein a set of dependency constraints for a given task comprises a rule specifying a particular serverless environment to be used for the given task if a condition of an output of a task previous to the given task in the task chain is met. 8. A system comprising: at least one memory element; at least one processor coupled to the at least one memory element; an interface that when executed by the at least one processor is configured to: receive a task definition, wherein the task definition comprises a first task and a second task chained to the first task and adding the first task and the second task to a task queue; and one or more workers provisioned in networked hardware resources of a serverless computing environment that when executed by the at least one processor is configured to: determine a set of dependency constraints for each task of a task chain in the task queue; determine a cost and a set of capabilities associated with each serverless computing environment; execute the first task from the task queue using hardware computing resources in a first serverless environment associated with a first serverless environment provider; first select, based on a sets of dependency constraints, the costs, and the sets of capabilities, and an output of the first task, a second serverless environment out of a plurality of serverless environments to execute the second task from the task queue; and execute the second task from the task queue using hardware computing resources in the second serverless environment. 9. The system of claim 8 , wherein the task definition comprises a first task identifier identifying the first task, a first pointer to input data, a task action function code, a second pointer to output data, and a second task identifier identifying the second task. 10. One or more computer-readable non-transitory media comprising one or more instructions, for serverless computing and task scheduling, that when executed on a processor configure the processor to perform one or more operations comprising: receiving a task definition, wherein the task definition comprises a first task and a second task chained to the first task; adding the first task and the second task to a task queue; determining a set of dependency constraints for each task of a task chain in the task queue; determining a cost and a set of capabilities associated with each serverless computing environment; executing the first task from the task queue using hardware computing resources in a first serverless environment associated with a first serverless environment provider; first selecting, based on sets of dependency constraints, the costs, and the sets of capabilities, and an output of the first task, a second serverless environment out of a plurality of serverless environments to execute the second task from the task queue; and executing the second task from the task queue using hardware computing resources in the second serverless environment. 11. The media of claim 10 , wherein the first selecting the serverless computing environment comprises minimizing sum of costs for all tasks in the task chain and ensuring the set of dependency constraints for each task in the task chain is satisfied by the set of capabilities associated with the serverless environment selected for each task in the task chain. 12. The media of claim 10 , wherein the set of dependency constraints comprises the programming language of code for the task, and the set of capabilities comprises a programming language that a serverless environment can execute. 13. The media of claim 10 , wherein a set of dependency constraints for a given task comprises one or more of the following: a data locality compliance rule, and one or more requirements specified in a task definition associated with the given task. 14. The media of claim 10 , wherein a set of dependency constraints for a given task comprises a rule specifying a particular serverless environment to be used for the given task if a condition of an output of a task previous to the given task in the task chain is met.

Assignees

Inventors

Classifications

  • G06F9/5027Primary

    the resource being a machine, e.g. CPUs, Servers, Terminals · 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

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 US10884807B2 cover?
In one embodiment, a method for serverless computing comprises: receiving a task definition, wherein the task definition comprises a first task and a second task chained to the first task; adding the first task and the second task to a task queue; executing the first task from the task queue using hardware computing resources in a first serverless environment associated with a first serverless …
Who is the assignee on this patent?
Cisco Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/5027. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 05 2021 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).