Dynamic execution log in a distributed system
AssigneeMicrosoft Technology Licensing, LLC
InventorsKenneth David Wolf, Jesus Ruiz-Scougall, Nathan Christopher Talbert, Clark Roberts
Life of this patent
Estimating the term…
Abstract
Scheduling and dispatching jobs for a plurality of different entities. A method includes receiving at a work coordinator, one or more actions associated with a job. The method further includes storing in a log at the work coordinator, keyed on a job key, state for the one or more actions and a list of the one or more actions. The method further includes making calls to one or more worker processes to cause the worker process to perform actions associated with the job. As a result of making calls to one or more worker processes, the method further includes receiving at least one of a change to the list of remaining actions or the state.
Claims18
In a distributed computing system, a method of scheduling and dispatching jobs the method comprising:
- receiving at a work coordinator, a list of actions associated with a job to be performed as a background job, the work coordinator comprising a log and the work coordinator having access to a plurality of worker processes for performing actions in the background;
- storing in the log at the work coordinator, the list actions, a state for the list of actions and a job key associated with the job;
- making calls to the plurality of worker processes to cause the plurality of worker processes to perform one or more actions from the list of actions associated with the job;
- as a result of making calls to the plurality of worker processes performing the one or more actions from the list of actions by the plurality of worker processes;
- updating the log by the plurality of worker processes in response to performing and processing the one or more actions from the list of actions by adding a new actions to the list of actions associated with the job, removing actions from the list of actions associated with job and changing state associated with the job in the job log;
- and
- receiving a completion notice at the work coordinator and based on the completion notification, prevent any additional actions to be added to the list of actions in the log, finish processing remaining actions in the list of actions and remove any state associated with the job when all actions in the list have been processed.
A distributed computing system for scheduling and dispatching jobs the system comprising:
- one or more processors;
- and
- one or more computer readable media, wherein the one or more computer readable media comprise computer executable instructions that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to perform the following:
- receive at a work coordinator, a list of actions associated with a job to be performed as a background job, the work coordinator comprising a log and the work coordinator having access to a plurality of worker processes for performing actions in the background;
- store in the log at the work coordinator, the list actions, a state for the list of actions and a job key associated with the job;
- make calls to the plurality of worker processes to cause the plurality of worker processes to perform one or more actions from the list of actions associated with the job;
- and
- as result of making calls to the plurality of worker processes performing the one or more actions from the list of actions by the plurality of worker processes;
- update the log by the plurality of worker processes in response to performing and processing the one or more actions from the list of actions by adding a new actions to the list of actions associated with the job, removing actions from the list of actions associated with job and changing state associated with the job in the job log;
- and
- receive a completion notice at the work coordinator and based on the completion notification, prevent any additional actions to be added to the list of actions in the log, finish processing remaining actions in the list of actions and remove any state associated with the job when all actions in the list have been processed.
A distributed computing system for scheduling and dispatching jobs, the system comprising:
- one or more processors;
- a front end configured to receive user input comprising background jobs;
- and
- a backend coordinator, comprising a log and having access to a plurality of backend workers,
- wherein the log is configured to:
- store a list of actions associated with a background job,
- store a key associated with the background job, and
- store state that applies to each action from the list of actions of the background job;
- wherein the plurality of backend workers are configured to:
- receive at least one action from the list of actions from the backend coordinator;
- process and perform the at least one action from the list of actions received from the backend coordinator;
- and
- update the log in response to processing and performing the at least one action by:
- adding new actions to the list of actions associated with the background job;
- removing actions from the list of actions associated with the background job;
- and
- changing state associated with the background job;
- and
- wherein the backend coordinator receives a completion notice and, based on the completion notification, prevents any additional actions to be added to the list of actions in the log, finishes processing actions remaining in the list, and removes any state associated with the background job when all actions in the list have been processed.
Dependencies are inferred from the claim text.