numElements = 5; maxTime = 5; numLoaders = 1; noConflict = [| true , true , true , true , true | true , true , true , true , true | false , true , false , true , false | false , false , false , false , false | true , false , true , false , true |]; slotCapacity = [5, 5, 5, 5, 5]; loaderCapacity = [| 5, 5, 5, 5, 5 |]; numAttributes = 0; attributesRange = []; attributes = []; attributeConcurrencyLimit = [];
This request will represent the information gathered by the Scheduler Optimizer to be passed to the Mini Zinc schedule optimizer engine.
- numElements the number elements to be scheduled
- maxTime is the index of last possible time-slot for scheduling (total number of slots in the noConflict array)
- noConflict reflects the availability of the elements within change window. Each row defines the availability of an element. Each column represents a time slot within the user provided change window. Each timeslot is equivelent to the max duration of a single change.
- slotCapacity represents the concurrency limit for each of the time slots. In Dublin, for VNFs, each entry will be equal to the concurrency limit provided in the create schedule request.
The optimizer engine will support the following constraint inputs, The definition of these constraints will be determined by policy???.
- numLoaders is 1 (scheduler)
- loaderCapacity is unlimited (scheduler must be able to support the slotCapacity)
- numAttributes, attributeRange, attributes and attributeConcurrencyLimit - From policy / templates.
results: - num_scheduled: 0 total_completion_time: 0 element_slot_loader: | 1,0,1 2,0,1 3,0,1 4,0,1 5,0,1 - num_scheduled: 1 total_completion_time: 2 element_slot_loader: | 1,0,1 2,0,1 3,2,1 4,0,1 5,0,1 - num_scheduled: 4 total_completion_time: 8 element_slot_loader: | 1,2,1 2,1,1 3,2,1 4,0,1 5,3,1 elapsed_millis: 3400
This request will represent the information returned to the Scheduler Optimizer from the Mini Zinc schedule optimizer engine.
Multiple "schedules" may be returned the objective being to schedule the most changes in the least amount of time.