Queued scheduler
AssigneeServiceNow, Inc.
InventorsSam Hauer, Scott Stone, Ivan Batanov
Life of this patent
Estimating the term…
Abstract
Systems, apparatuses, and methods for scheduling maintenance jobs for computing assets implementing configuration items within a CMDB are described. The maintenance jobs include database backups. Two queues operate together to schedule a large number of jobs in a technique that is scalable while staying within resource constraints.
Claims20
An apparatus for maintaining computing assets implementing configuration items within a configuration management database, comprising:
- memory;
- and
- a processor configured to execute instructions stored in the memory to:
- receive, on a periodic basis, a first queue including a plurality of first queue maintenance jobs for configuration items within a configuration management database, the first queue initially having a defined order and at least some of the plurality of first queue maintenance jobs including a backup job for data stored within a non-transitory storage medium;
- process the first queue starting with a first queue entry in the defined order;
- receive, while processing the first queue, a second queue maintenance job forming a respective entry within a second queue, the second queue initially ordered by receipt of a request for the second queue maintenance job, and wherein processing of the second queue has a higher priority than processing of the first queue;
- and
- in response to receiving the second queue maintenance job and after completion of a first queue maintenance job of the plurality of first queue maintenance jobs, process the second queue in sequence by, for a second queue entry:
- comparing requirements for performing the second queue maintenance job to conditions occurring within the configuration management database, wherein the second queue maintenance job is associated with the second queue entry and the conditions occurring within the configuration management database include a status of processing the first queue;
- when the conditions meet the requirements, performing the second queue maintenance job by copying data stored within a first non-transitory storage medium to a second non-transitory storage medium;
- and
- when the conditions do not meet the requirements, moving the second queue entry to an end of the second queue without performing the second queue maintenance job;
- and
- wherein processing the second queue defers processing of the first queue until no second queue entries remain within the second queue or the conditions meet the requirements of no second queue entry within the second queue.
A method of maintaining computing assets implementing configuration items within a configuration management database, comprising:
- receiving, on a periodic basis, a first queue including a plurality of first queue maintenance jobs for configuration items within a configuration management database, the first queue initially having a defined order and at least some of the plurality of first queue maintenance jobs including a backup job;
- processing the first queue starting with a first queue entry in the defined order by, for the first queue entry within the first queue:
- comparing requirements for performing a first queue maintenance job of the plurality of first queue maintenance jobs associated with the first queue entry to conditions occurring within the configuration management database, wherein the first queue maintenance job includes a respective backup job for data stored within the non-transitory storage medium;
- when the conditions meet the requirements, performing the backup job of the first queue maintenance job by copying data stored within a first non-transitory storage medium to a second non-transitory storage medium;
- and
- when the conditions do not meet the requirements, ending processing of the first queue entry;
- receiving, while processing the first queue, a second queue maintenance job forming a respective entry within a second queue, the second queue initially ordered by receipt of a request for the second queue maintenance job, and wherein processing of the second queue has a higher priority than processing of the first queue;
- and
- in response to receiving the second queue maintenance job and after completion of the first queue maintenance job of the plurality of first queue maintenance jobs, processing the second queue in sequence by, for a second queue entry within the second queue:
- comparing requirements for performing the second queue maintenance job to the conditions occurring within the configuration management database wherein the second queue maintenance job is associated with the second queue entry;
- when the conditions meet the requirements, performing the second queue maintenance job associated with the second queue entry;
- and
- when the conditions do not meet the requirements, moving the second queue entry of the second queue to an end of the second queue without performing the second queue maintenance job associated with the second queue entry;
- wherein processing the second queue defers processing of the first queue until no entries remain within the second queue or the conditions meet the requirements of no entry within the second queue.
A method of maintaining computing assets implementing configuration items within a configuration management database, comprising:
- receiving, on a periodic basis, a first queue including a plurality of first queue maintenance jobs for configuration items within a configuration management database, the first queue initially having a defined order and at least some of the plurality of first queue maintenance jobs including a backup job;
- processing the first queue starting with a first queue entry in the defined order;
- receiving, while processing the first queue, a second queue maintenance job forming a respective entry within a second queue, the second queue initially ordered by receipt of a request for the second queue maintenance job, and wherein processing of the second queue has a higher priority than processing of the first queue;
- in response to receiving the second queue maintenance job and after completion of a first queue maintenance job of the plurality of first queue maintenance jobs, begin processing the second queue unless a backup is occurring while processing the first queue that prevents any backup job associated with the second queue maintenance job within the second queue from occurring, wherein processing the second queue comprises, for a second queue entry within the second queue:
- performing the backup job of the second queue maintenance job by copying data stored within a first non-transitory storage medium to a second non-transitory storage medium;
- and
- deferring processing of the first queue until no entries remain within the second queue or no entry within the second queue can be processed.
Dependencies are inferred from the claim text.