diff --git a/schedulers/binPackSortedWattsSortedOffers.go b/schedulers/binPackSortedWattsSortedOffers.go index e89236f..8d757fb 100644 --- a/schedulers/binPackSortedWattsSortedOffers.go +++ b/schedulers/binPackSortedWattsSortedOffers.go @@ -127,7 +127,7 @@ func (s *BinPackSortedWattsSortedOffers) ResourceOffers(driver sched.SchedulerDr log.Println("Sorted Offers:") for i := 0; i < len(offers); i++ { offer := offers[i] - offerUtils.AddHostIfNew(offer) + offerUtils.UpdateEnvironment(offer) offerCPU, _, _ := offerUtils.OfferAgg(offer) log.Printf("Offer[%s].CPU = %f\n", offer.GetHostname(), offerCPU) } diff --git a/schedulers/binpackedpistoncapping.go b/schedulers/binpackedpistoncapping.go index a14e18f..a7ead66 100644 --- a/schedulers/binpackedpistoncapping.go +++ b/schedulers/binpackedpistoncapping.go @@ -210,7 +210,7 @@ func (s *BinPackedPistonCapper) ResourceOffers(driver sched.SchedulerDriver, off // retrieving the total power for each host in the offers for _, offer := range offers { - offerUtils.AddHostIfNew(offer) + offerUtils.UpdateEnvironment(offer) if _, ok := s.totalPower[*offer.Hostname]; !ok { _, _, offerWatts := offerUtils.OfferAgg(offer) s.totalPower[*offer.Hostname] = offerWatts diff --git a/schedulers/binpacksortedwatts.go b/schedulers/binpacksortedwatts.go index 2dd6f5f..f0c69fa 100644 --- a/schedulers/binpacksortedwatts.go +++ b/schedulers/binpacksortedwatts.go @@ -120,7 +120,7 @@ func (s *BinPackSortedWatts) ResourceOffers(driver sched.SchedulerDriver, offers log.Printf("Received %d resource offers", len(offers)) for _, offer := range offers { - offerUtils.AddHostIfNew(offer) + offerUtils.UpdateEnvironment(offer) select { case <-s.Shutdown: log.Println("Done scheduling tasks: declining offer on [", offer.GetHostname(), "]") diff --git a/schedulers/bottomHeavy.go b/schedulers/bottomHeavy.go index c3f5198..3d8251e 100644 --- a/schedulers/bottomHeavy.go +++ b/schedulers/bottomHeavy.go @@ -18,12 +18,12 @@ import ( ) /* -Tasks are categorized into small and large tasks based on the watts requirement. -All the small tasks are packed into offers from agents belonging to power class C and power class D, using BinPacking. -All the large tasks are spread among the offers from agents belonging to power class A and power class B, using FirstFit. +Tasks are categorized into small and large tasks based on watts requirements. +All the large tasks are packed into offers from agents belonging to power classes A and B, using Bin-Packing. +All the small tasks are spread among offers from agents belonging to power class C and D, using First-Fit. -BinPacking has the most effect when co-scheduling of tasks is increased. Large tasks typically utilize more resources and hence, - co-scheduling them has a great impact on the total power utilization. +Bin-Packing has the most effect when co-scheduling of tasks is increased. Large tasks typically utilize more resources and hence, +co-scheduling them has a great impact on the total power utilization. */ func (s *BottomHeavy) takeOfferBinPack(offer *mesos.Offer, totalCPU, totalRAM, totalWatts, @@ -159,7 +159,7 @@ func (s *BottomHeavy) createTaskInfoAndLogSchedTrace(offer *mesos.Offer, task de return taskToSchedule } -// Using BinPacking to pack small tasks into this offer. +// Using BinPacking to pack large tasks into the given offers. func (s *BottomHeavy) pack(offers []*mesos.Offer, driver sched.SchedulerDriver) { for _, offer := range offers { select { @@ -221,7 +221,7 @@ func (s *BottomHeavy) pack(offers []*mesos.Offer, driver sched.SchedulerDriver) } } -// Using first fit to spread large tasks into these offers. +// Using First-Fit to spread small tasks among the given offers. func (s *BottomHeavy) spread(offers []*mesos.Offer, driver sched.SchedulerDriver) { for _, offer := range offers { select { @@ -282,7 +282,7 @@ func (s *BottomHeavy) ResourceOffers(driver sched.SchedulerDriver, offers []*mes offersLightPowerClasses := []*mesos.Offer{} for _, offer := range offers { - offerUtils.AddHostIfNew(offer) + offerUtils.UpdateEnvironment(offer) select { case <-s.Shutdown: log.Println("Done scheduling tasks: declining offer on [", offer.GetHostname(), "]") diff --git a/schedulers/bpswMaxMin.go b/schedulers/bpswMaxMin.go index a176501..60a80ee 100644 --- a/schedulers/bpswMaxMin.go +++ b/schedulers/bpswMaxMin.go @@ -164,7 +164,7 @@ func (s *BPSWMaxMinWatts) ResourceOffers(driver sched.SchedulerDriver, offers [] log.Printf("Received %d resource offers", len(offers)) for _, offer := range offers { - offerUtils.AddHostIfNew(offer) + offerUtils.UpdateEnvironment(offer) select { case <-s.Shutdown: log.Println("Done scheduling tasks: declining offer on [", offer.GetHostname(), "]") diff --git a/schedulers/bpswMaxMinPistonCapping.go b/schedulers/bpswMaxMinPistonCapping.go index 41c1559..53a7200 100644 --- a/schedulers/bpswMaxMinPistonCapping.go +++ b/schedulers/bpswMaxMinPistonCapping.go @@ -261,7 +261,7 @@ func (s *BPSWMaxMinPistonCapping) ResourceOffers(driver sched.SchedulerDriver, o log.Printf("Received %d resource offers", len(offers)) for _, offer := range offers { - offerUtils.AddHostIfNew(offer) + offerUtils.UpdateEnvironment(offer) select { case <-s.Shutdown: log.Println("Done scheduling tasks: declining offer on [", offer.GetHostname(), "]") diff --git a/schedulers/bpswMaxMinProacCC.go b/schedulers/bpswMaxMinProacCC.go index c3f2e90..a0ac947 100644 --- a/schedulers/bpswMaxMinProacCC.go +++ b/schedulers/bpswMaxMinProacCC.go @@ -300,7 +300,7 @@ func (s *BPSWMaxMinProacCC) ResourceOffers(driver sched.SchedulerDriver, offers // retrieving the available power for all the hosts in the offers. for _, offer := range offers { - offerUtils.AddHostIfNew(offer) + offerUtils.UpdateEnvironment(offer) _, _, offerWatts := offerUtils.OfferAgg(offer) s.availablePower[*offer.Hostname] = offerWatts // setting total power if the first time diff --git a/schedulers/firstfit.go b/schedulers/firstfit.go index e0f114d..db59e24 100644 --- a/schedulers/firstfit.go +++ b/schedulers/firstfit.go @@ -119,7 +119,7 @@ func (s *FirstFit) ResourceOffers(driver sched.SchedulerDriver, offers []*mesos. log.Printf("Received %d resource offers", len(offers)) for _, offer := range offers { - offerUtils.AddHostIfNew(offer) + offerUtils.UpdateEnvironment(offer) select { case <-s.Shutdown: log.Println("Done scheduling tasks: declining offer on [", offer.GetHostname(), "]") diff --git a/schedulers/firstfitProacCC.go b/schedulers/firstfitProacCC.go index 0d4c3d4..51a466e 100644 --- a/schedulers/firstfitProacCC.go +++ b/schedulers/firstfitProacCC.go @@ -233,7 +233,7 @@ func (s *FirstFitProacCC) ResourceOffers(driver sched.SchedulerDriver, offers [] // retrieving the available power for all the hosts in the offers. for _, offer := range offers { - offerUtils.AddHostIfNew(offer) + offerUtils.UpdateEnvironment(offer) _, _, offer_watts := offerUtils.OfferAgg(offer) s.availablePower[*offer.Hostname] = offer_watts // setting total power if the first time. diff --git a/schedulers/firstfitSortedOffers.go b/schedulers/firstfitSortedOffers.go index 0bcd47a..d3fdb5f 100644 --- a/schedulers/firstfitSortedOffers.go +++ b/schedulers/firstfitSortedOffers.go @@ -126,7 +126,7 @@ func (s *FirstFitSortedOffers) ResourceOffers(driver sched.SchedulerDriver, offe log.Println("Sorted Offers:") for i := 0; i < len(offers); i++ { offer := offers[i] - offerUtils.AddHostIfNew(offer) + offerUtils.UpdateEnvironment(offer) offerCPU, _, _ := offerUtils.OfferAgg(offer) log.Printf("Offer[%s].CPU = %f\n", offer.GetHostname(), offerCPU) } diff --git a/schedulers/firstfitSortedWattsProacCC.go b/schedulers/firstfitSortedWattsProacCC.go index 99524b2..2610084 100644 --- a/schedulers/firstfitSortedWattsProacCC.go +++ b/schedulers/firstfitSortedWattsProacCC.go @@ -246,7 +246,7 @@ func (s *FirstFitSortedWattsProacCC) ResourceOffers(driver sched.SchedulerDriver // retrieving the available power for all the hosts in the offers. for _, offer := range offers { - offerUtils.AddHostIfNew(offer) + offerUtils.UpdateEnvironment(offer) _, _, offer_watts := offerUtils.OfferAgg(offer) s.availablePower[*offer.Hostname] = offer_watts // setting total power if the first time. diff --git a/schedulers/firstfitSortedWattsSortedOffers.go b/schedulers/firstfitSortedWattsSortedOffers.go index dd552de..b8b1eef 100644 --- a/schedulers/firstfitSortedWattsSortedOffers.go +++ b/schedulers/firstfitSortedWattsSortedOffers.go @@ -128,7 +128,7 @@ func (s *FirstFitSortedWattsSortedOffers) ResourceOffers(driver sched.SchedulerD log.Println("Sorted Offers:") for i := 0; i < len(offers); i++ { offer := offers[i] - offerUtils.AddHostIfNew(offer) + offerUtils.UpdateEnvironment(offer) offerCPU, _, _ := offerUtils.OfferAgg(offer) log.Printf("Offer[%s].CPU = %f\n", offer.GetHostname(), offerCPU) } diff --git a/schedulers/firstfitsortedwatts.go b/schedulers/firstfitsortedwatts.go index 6c6cc24..1f71411 100644 --- a/schedulers/firstfitsortedwatts.go +++ b/schedulers/firstfitsortedwatts.go @@ -122,7 +122,7 @@ func (s *FirstFitSortedWatts) ResourceOffers(driver sched.SchedulerDriver, offer log.Printf("Received %d resource offers", len(offers)) for _, offer := range offers { - offerUtils.AddHostIfNew(offer) + offerUtils.UpdateEnvironment(offer) select { case <-s.Shutdown: log.Println("Done scheduling tasks: declining offer on [", offer.GetHostname(), "]") diff --git a/schedulers/firstfitwattsonly.go b/schedulers/firstfitwattsonly.go index 5bef674..d2b13b6 100644 --- a/schedulers/firstfitwattsonly.go +++ b/schedulers/firstfitwattsonly.go @@ -112,7 +112,7 @@ func (s *FirstFitWattsOnly) ResourceOffers(driver sched.SchedulerDriver, offers log.Printf("Received %d resource offers", len(offers)) for _, offer := range offers { - offerUtils.AddHostIfNew(offer) + offerUtils.UpdateEnvironment(offer) select { case <-s.Shutdown: log.Println("Done scheduling tasks: declining offer on [", offer.GetHostname(), "]") diff --git a/schedulers/topHeavy.go b/schedulers/topHeavy.go index da612d7..1b62336 100644 --- a/schedulers/topHeavy.go +++ b/schedulers/topHeavy.go @@ -19,8 +19,8 @@ import ( /* Tasks are categorized into small and large tasks based on the watts requirement. -All the large tasks are packed into offers from agents belonging to power class A and power class B, using BinPacking. -All the small tasks are spread among the offers from agents belonging to power class C and power class D, using FirstFit. +All the small tasks are packed into offers from agents belonging to power class C and power class D, using BinPacking. +All the large tasks are spread among the offers from agents belonging to power class A and power class B, using FirstFit. This was done to give a little more room for the large tasks (power intensive) for execution and reduce the possibility of starvation of power intensive tasks. @@ -281,7 +281,7 @@ func (s *TopHeavy) ResourceOffers(driver sched.SchedulerDriver, offers []*mesos. offersLightPowerClasses := []*mesos.Offer{} for _, offer := range offers { - offerUtils.AddHostIfNew(offer) + offerUtils.UpdateEnvironment(offer) select { case <-s.Shutdown: log.Println("Done scheduling tasks: declining offer on [", offer.GetHostname(), "]")