Adaptive self-maintenance scheduler
AssigneeCohesity, Inc.
InventorsTarang Vaish, Anirvan Duttagupta, Sashi Madduri
Life of this patent
Estimating the term…
Abstract
Embodiments presented herein disclose adaptive techniques for scheduling self-maintenance processes. A load predictor estimates, based on a current state of a distributed storage system, an amount of resources of the system required to perform each of a plurality of self-maintenance processes. A maintenance process scheduler estimates, based on one or more inputs, an amount of resources of the distributed system available to perform one or more of the self-maintenance processes during at least a first time period. The maintenance process scheduler determines a schedule for the one or more of the self-maintenance processes to perform during the first time period, based on the estimated amount of resources required and available.
Claims18
A method, comprising:
- estimating, based on a current state of a distributed storage system comprising a primary storage server and a plurality of secondary storage servers, an amount of computing resources of the primary storage server and the plurality of secondary storage servers required to perform each of a plurality of self-maintenance processes wherein the plurality of secondary storage servers are configured to perform one or more backup processes and the plurality of self-maintenance processes, wherein the plurality of self-maintenance processes include at least one of garbage collection and correcting inconsistencies associated with the distributed file system, wherein the plurality of secondary storage servers form a distributed file system providing backup storage services to the primary storage server;
- estimating, based on one or more inputs, an amount of computing resources of the primary storage server and the plurality of secondary storage servers available to perform one or more of the plurality of self-maintenance processes during at least a first time period of a plurality of time periods;
- determining which of the plurality of self-maintenance processes to perform during the at least first time period based on the estimated amount of computing resources of the primary storage server and the plurality of secondary storage servers required to perform each of the plurality of self-maintenance processes and the estimated amount of computing resources of the primary storage server and the plurality of secondary storage servers available to perform one or more of the plurality of self-maintenance processes wherein one or more of the self-maintenance processes are determined to be performed during the at least first time period;
- and
- scheduling, based on the estimated amount of computing resources required and on the estimated amount of computing resources available, the determined one or more self-maintenance processes to perform during the first time period.
A non-transitory computer-readable storage medium having instructions, which, when executed on a processor, perform an operation comprising:
- estimating, based on a current state of a distributed storage system comprising a primary storage server and a plurality of secondary storage servers, an amount of computing resources of the primary storage server and the plurality of secondary storage servers required to perform each of a plurality of self-maintenance processes wherein the plurality of secondary storage servers are configured to perform one or more backup processes and the plurality of self-maintenance processes, wherein the plurality of self-maintenance processes include at least one of garbage collection and correcting inconsistencies associated with the distributed file system, wherein the plurality of secondary storage servers form a distributed file system providing backup storage services to the primary storage server;
- estimating, based on one or more inputs, an amount of computing resources of the primary storage server and the plurality of secondary storage servers available to perform one or more of the plurality of self-maintenance processes during at least a first time period of a plurality of time periods;
- determining which of the plurality of self-maintenance processes to perform during the at least first time period based on the estimated amount of computing resources of the primary storage server and the plurality of secondary storage servers required to perform each of the plurality of self-maintenance processes and the estimated amount of computing resources of the primary storage server and the plurality of secondary storage servers available to perform one or more of the plurality of self-maintenance processes, wherein one or more of the self-maintenance processes are determined to be performed during the at least first time period;
- and
- scheduling, based on the estimated amount of computing resources required and on the estimated amount of computing resources available, the determined one or more self-maintenance processes to perform during the first time period.
A system, comprising:
- a processor;
- and
- a memory containing program code, which, when executed on the processor, performs an operation comprising:
- estimating, based on a current state of a distributed storage system comprising a primary storage server and a plurality of secondary storage servers, an amount of computing resources of the primary storage server and the plurality of secondary storage servers required to perform each of a plurality of self-maintenance processes wherein the plurality of secondary storage servers are configured to perform one or more backup processes and the plurality of self-maintenance processes, wherein the plurality of self-maintenance processes include at least one of garbage collection and correcting inconsistencies associated with the distributed file system, wherein the plurality of secondary storage servers form a distributed file system providing backup storage services to the primary storage server;
- estimating, based on one or more inputs, an amount of computing resources of the primary storage server and the plurality of secondary storage servers available to perform one or more of the plurality of self-maintenance processes during at least a first time period of a plurality of time periods;
- determine which of the plurality of self-maintenance processes to perform during the at least first time period based on the estimated amount of computing resources of the primary storage server and the plurality of secondary storage servers required to perform each of the plurality of self-maintenance processes and the estimated amount of computing resources of the primary storage server and the plurality of secondary storage servers available to perform one or more of the plurality of self-maintenance processes, wherein one or more of the self-maintenance processes are determined to be performed during the at least first time period;
- and
- scheduling, based on the estimated amount of computing resources required and on the estimated amount of computing resources available, the determined one or more self-maintenance processes to perform during the first time period.
Dependencies are inferred from the claim text.