Namespace faabric::planner
-
namespace planner
Typedefs
-
typedef std::promise<std::shared_ptr<faabric::Message>> MessageResultPromise
-
typedef std::shared_ptr<MessageResultPromise> MessageResultPromisePtr
-
using header = beast::http::field
Enums
-
enum FlushType
Values:
-
enumerator NoFlushType
-
enumerator Hosts
-
enumerator Executors
-
enumerator SchedulingState
-
enumerator NoFlushType
-
enum PlannerCalls
Values:
-
enumerator NoPlanerCall
-
enumerator Ping
-
enumerator GetAvailableHosts
-
enumerator RegisterHost
-
enumerator RemoveHost
-
enumerator SetMessageResult
-
enumerator GetMessageResult
-
enumerator GetBatchResults
-
enumerator GetSchedulingDecision
-
enumerator GetNumMigrations
-
enumerator CallBatch
-
enumerator PreloadSchedulingDecision
-
enumerator NoPlanerCall
-
class KeepAliveThread : public faabric::util::PeriodicBackgroundThread
Public Functions
-
virtual void doWork() override
Public Members
-
std::shared_ptr<RegisterHostRequest> thisHostReq = nullptr
-
virtual void doWork() override
-
class Planner
Public Functions
-
Planner()
-
PlannerConfig getConfig()
-
void printConfig() const
-
std::string getPolicy()
-
void setPolicy(const std::string &newPolicy)
-
bool reset()
-
std::vector<std::shared_ptr<Host>> getAvailableHosts()
-
bool registerHost(const Host &hostIn, bool overwrite)
-
void removeHost(const Host &hostIn)
-
std::shared_ptr<faabric::BatchExecuteRequestStatus> getBatchResults(int32_t appId)
-
faabric::batch_scheduler::InFlightReqs getInFlightReqs()
-
int getNumMigrations()
-
std::set<std::string> getNextEvictedHostIps()
-
std::map<int32_t, std::shared_ptr<BatchExecuteRequest>> getEvictedReqs()
-
void setNextEvictedVm(const std::set<std::string> &vmIp)
-
Planner()
-
struct PlannerCache
Public Members
-
std::unordered_map<uint32_t, MessageResultPromisePtr> plannerResults
-
std::set<std::string> pushedSnapshots
-
std::unordered_map<uint32_t, MessageResultPromisePtr> plannerResults
-
class PlannerClient : public faabric::transport::MessageEndpointClient
Public Functions
-
PlannerClient()
-
PlannerClient(const std::string &plannerIp)
-
void ping()
-
void clearCache()
-
std::vector<Host> getAvailableHosts()
-
faabric::Message getMessageResult(int appId, int msgId, int timeoutMs)
-
int getNumMigrations()
-
PlannerClient()
-
class PlannerEndpointHandler : public faabric::endpoint::HttpRequestHandler, public std::enable_shared_from_this<PlannerEndpointHandler>
Public Functions
-
virtual void onRequest(faabric::endpoint::HttpRequestContext &&ctx, faabric::util::BeastHttpRequest &&request) override
-
virtual void onRequest(faabric::endpoint::HttpRequestContext &&ctx, faabric::util::BeastHttpRequest &&request) override
-
class PlannerServer : public faabric::transport::MessageEndpointServer
Public Functions
-
PlannerServer()
-
PlannerServer()
-
struct PlannerState
Public Members
-
std::string policy
-
std::map<std::string, std::shared_ptr<Host>> hostMap
-
std::map<int, std::map<int, std::shared_ptr<faabric::Message>>> appResults
-
std::map<int, std::vector<std::string>> appResultWaiters
-
faabric::batch_scheduler::InFlightReqs inFlightReqs
-
std::map<int, std::shared_ptr<batch_scheduler::SchedulingDecision>> preloadedSchedulingDecisions
-
std::atomic<int> numMigrations = 0
-
std::map<int, std::shared_ptr<BatchExecuteRequest>> evictedRequests
-
std::set<std::string> nextEvictedHostIps
-
std::string policy
-
typedef std::promise<std::shared_ptr<faabric::Message>> MessageResultPromise