Skip to content

Commit

Permalink
Update LoadBalancePolicy dispatch method signatures
Browse files Browse the repository at this point in the history
  • Loading branch information
DonaldJennings committed Feb 14, 2024
1 parent a268b3e commit 1794bcf
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 8 deletions.
8 changes: 4 additions & 4 deletions include/faabric/loadbalance/LoadBalancePolicy.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,23 @@
class LoadBalancePolicy
{
public:
virtual std::vector<std::string> dispatch(const std::set<std::string>& warm_faaslets, int number_of_messages, faabric::scheduler::Scheduler& scheduler) = 0;
virtual std::vector<std::string> dispatch(const std::set<std::string>& warm_faaslets, int number_of_messages, const faabric::scheduler::Scheduler& scheduler) = 0;
};

class FaasmDefaultPolicy : public LoadBalancePolicy
{
public:
std::vector<std::string> dispatch(const std::set<std::string>& warm_faaslets, int number_of_messages, faabric::scheduler::Scheduler& scheduler) override;
std::vector<std::string> dispatch(const std::set<std::string>& warm_faaslets, int number_of_messages, const faabric::scheduler::Scheduler& scheduler) override;
};

class LeastLoadAveragePolicy : public LoadBalancePolicy
{
public:
std::vector<std::string> dispatch(const std::set<std::string>& warm_faaslets, int number_of_messages, faabric::scheduler::Scheduler& scheduler) override;
std::vector<std::string> dispatch(const std::set<std::string>& warm_faaslets, int number_of_messages, const faabric::scheduler::Scheduler& scheduler) override;
};

class MostSlotsPolicy : public LoadBalancePolicy
{
public:
std::vector<std::string> dispatch(const std::set<std::string>& warm_faaslets, int number_of_messages, faabric::scheduler::Scheduler& scheduler) override;
std::vector<std::string> dispatch(const std::set<std::string>& warm_faaslets, int number_of_messages, const faabric::scheduler::Scheduler& scheduler) override;
};
2 changes: 1 addition & 1 deletion src/loadbalance/FaasmDefaultPolicy.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#include <faabric/loadbalance/LoadBalancePolicy.h>
#include <stdexcept>

std::vector<std::string> FaasmDefaultPolicy::dispatch(const std::set<std::string>& warm_faaslets, int number_of_messages, faabric::scheduler::Scheduler& scheduler)
std::vector<std::string> FaasmDefaultPolicy::dispatch(const std::set<std::string>& warm_faaslets, int number_of_messages, const faabric::scheduler::Scheduler& scheduler)
{
std::vector<std::string> hosts_delta;
hosts_delta.reserve(number_of_messages);
Expand Down
2 changes: 1 addition & 1 deletion src/loadbalance/LeastLoadAveragePolicy.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#include <faabric/loadbalance/LoadBalancePolicy.h>
#include <stdexcept>

std::vector<std::string> LeastLoadAveragePolicy::dispatch(const std::set<std::string>& warm_faaslets, int number_of_messages, faabric::scheduler::Scheduler& scheduler)
std::vector<std::string> LeastLoadAveragePolicy::dispatch(const std::set<std::string>& warm_faaslets, int number_of_messages, const faabric::scheduler::Scheduler& scheduler)
{
throw std::runtime_error("LeastLoadAveragePolicy::dispatch not implemented");
}
2 changes: 1 addition & 1 deletion src/loadbalance/MostSlotsPolicy.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#include <faabric/loadbalance/LoadBalancePolicy.h>
#include <stdexcept>

std::vector<std::string> MostSlotsPolicy::dispatch(const std::set<std::string>& warm_faaslets, int number_of_messages, faabric::scheduler::Scheduler& scheduler)
std::vector<std::string> MostSlotsPolicy::dispatch(const std::set<std::string>& warm_faaslets, int number_of_messages, const faabric::scheduler::Scheduler& scheduler)
{
throw std::runtime_error("MostSlotsPolicy::dispatch not implemented");
}
2 changes: 1 addition & 1 deletion src/scheduler/Scheduler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,7 @@ faabric::util::SchedulingDecision Scheduler::doSchedulingDecision(

FaasmDefaultPolicy policy;
const std::set<std::string>& thisRegisteredHosts = getFunctionRegisteredHosts(firstMsg.user(), firstMsg.function(), false);
std::vector<std::string> balanced_order = policy.dispatch(thisRegisteredHosts, remainder, this); // Messy DI to get access to methods
std::vector<std::string> balanced_order = policy.dispatch(thisRegisteredHosts, remainder, *this); // Messy DI to get access to methods

remainder -= balanced_order.size();
for (const auto& h : balanced_order) {
Expand Down

0 comments on commit 1794bcf

Please sign in to comment.