Providing code change job sets of different sizes to validators
AssigneeEntit Software LLC
InventorsElad Benedict, Liron Tzabari, Amir Wigelman
Life of this patent
Estimating the term…
Abstract
Examples disclosed herein relate to providing code change job sets of different sizes to validators. Examples include placing a plurality of jobs in a queue, each job including at least one code change requested to be committed to shared code. Examples further include providing job sets of different sizes to a plurality of validators, each of the job sets comprising a consecutive group of one or more of the jobs in the queue at a given time and beginning with the job at the front of the queue at the given time.
Claims17
A method executed by a system comprising a processor, comprising:
- placing a plurality of jobs in a queue, each job including at least one code change requested to be committed to shared code;
- determining, with a processing resource and based on a job failure probability, a set size distribution based on a number of the jobs probabilistically expected to be successfully validated as a group by a plurality of validators provided respective job sets having different respective sizes specified by the set size distribution;
- providing the job sets to the validators, respectively, each job set comprising a consecutive group of the jobs in the queue at a given time and beginning with the job at the front of the queue at the given time;
- receiving, from each validator, an indication of whether all of the jobs of the provided job set were successfully validated as a group by the validator;
- identifying, based on the received indications, the largest job set of the job sets respectively validated by the validators;
- committing to the shared code each code change of each job of the identified largest job set;
- removing from the queue each job of the identified largest job set;
- and
- identifying an earliest invalid job in the queue.
A system comprising:
- a processor;
- and
- a non-transitory storage medium storing instructions executable on the processor to:
- place each of a plurality of received jobs in a queue, each job of the plurality of received jobs including at least one code change requested to be committed to shared code;
- determine a set size distribution based on a job failure probability representing, for any given job of the plurality of received jobs, a probability of the given job failing validation;
- provide a plurality of job sets, having different respective sizes specified by the determined set size distribution, to a plurality of validators, respectively, each job set of the plurality of job sets comprising a respective group of consecutive jobs in the queue at a given time and sharing and beginning with the job at the front of the queue at the given time;
- receive, from each respective validator of the plurality of validators, an indication of whether all of the jobs of the job set provided to the respective validator were successfully validated as a group by the respective validator;
- identify, based on the received indications, the largest job set of the job sets successfully validated by the validators;
- commit, to the shared code, each code change of each of the jobs of the identified largest job set;
- and
- remove from the queue each of the jobs of the identified largest job set.
A non-transitory machine-readable storage medium encoded with instructions executable by a processing resource of a computing device to:
- receive a plurality of jobs, each job of the plurality of jobs including at least one code change requested to be committed to shared code;
- place each of the plurality of jobs in a queue;
- determine a set size distribution based on a job failure probability representing, for any given job of the plurality of jobs, a probability of the given job failing validation;
- provide different size job sets to respective validators of a plurality of validators, the different size job sets having different respective sizes specified by the determined set size distribution, each job set of the different size job sets comprising a respective group of consecutive jobs in the queue at a given time and sharing the job at the front of the queue at the given time;
- receive, from each respective validator of the plurality of validators, an indication of whether all of the jobs of the job set provided to the respective validator were successfully validated as a group by the respective validator;
- identify, based on the received indications, the largest job set of the different size job sets successfully validated by the validators;
- commit, to the shared code, each code change of each of the jobs of the identified largest job set;
- and
- remove from the queue each of the jobs of the identified largest job set.
Dependencies are inferred from the claim text.