US 11,915,054 B2
Scheduling jobs on interruptible cloud computing instances
Subrata Mitra, Bangalore (IN); Sunav Choudhary, Kolkata (IN); Sheng Yang, Evanston, IL (US); Kanak Vivek Mahadik, San Jose, CA (US); and Samir Khuller, Silver Spring, MD (US)
Assigned to Adobe Inc., San Jose, CA (US)
Filed by Adobe Inc., San Jose, CA (US)
Filed on May 19, 2021, as Appl. No. 17/324,692.
Claims priority of provisional application 63/180,942, filed on Apr. 28, 2021.
Prior Publication US 2022/0374276 A1, Nov. 24, 2022
Int. Cl. G06F 9/46 (2006.01); G06F 9/50 (2006.01); G06F 9/48 (2006.01)
CPC G06F 9/5038 (2013.01) [G06F 9/4818 (2013.01); G06F 9/4856 (2013.01); G06F 9/4881 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method for cloud computing instance scheduling, the method comprising:
receiving a request to schedule a plurality of jobs, the request including a budget representing a maximum permitted cost to execute a combination of the jobs;
selecting i) a first job for execution from among the plurality of jobs and ii) a designated instance from among a plurality of cloud computing instances for executing the first job selected for execution, wherein the selecting is based on a probability distribution on a time and a cost of executing the first job selected for execution on the designated instance before interruption, the probability based on a profiling of prior executions of other jobs on the designated instance and a utility function representing a value associated with a progress of each of the plurality of jobs including an overhead cost associated with rescheduling each of the plurality of jobs due to the interruption;
sending a request to execute the first job selected for execution to the designated instance
receiving, from the designated instance, an indication that the first job selected for execution has been interrupted during the execution;
updating, responsive to receiving the indication, the utility function based on a remaining budget after deducting, from the budget, a cost incurred for executing the first job until the interruption occurred and the overhead cost
selecting a second job for execution from among the plurality of jobs based on the updated utility function; and
sending a request to execute the second job selected for execution to the designated instance.