From 911989f28e32492f8df6060e1d4e9ca6db16fd36 Mon Sep 17 00:00:00 2001 From: KyleKlenk <kyle.c.klenk@gmail.com> Date: Tue, 11 Oct 2022 20:26:16 +0000 Subject: [PATCH] changed lost_likelihood_indicator to lost_potential_indicator Added threshold and heartbeat interval as parameters that are passed into summa through json --- build/includes/global/settings_functions.hpp | 7 ++++++- build/includes/summa_actor/client.hpp | 4 ++-- build/includes/summa_actor/summa_server.hpp | 1 - build/source/actors/global/settings_functions.cpp | 10 +++++++++- build/source/actors/main.cpp | 6 ++++-- build/source/actors/summa_actor/client.cpp | 4 +++- build/source/actors/summa_actor/summa_server.cpp | 6 +++--- 7 files changed, 27 insertions(+), 11 deletions(-) diff --git a/build/includes/global/settings_functions.hpp b/build/includes/global/settings_functions.hpp index b6f1295..c0985db 100644 --- a/build/includes/global/settings_functions.hpp +++ b/build/includes/global/settings_functions.hpp @@ -15,6 +15,9 @@ struct Distributed_Settings { int port; // the port number of the server actor int total_hru_count; int num_hru_per_batch; + int heartbeat_interval; // number of seconds between each heartbeat message + int lost_node_threshold; // the maximum value the lost_potentail_indicator value can be before + // we assume the node is lost }; template<class Inspector> @@ -24,7 +27,9 @@ bool inspect(Inspector& inspector, Distributed_Settings& distributed_settings) { inspector.field("hostname", distributed_settings.hostname), inspector.field("port", distributed_settings.port), inspector.field("total_hru_count", distributed_settings.total_hru_count), - inspector.field("num_hru_per_batch",distributed_settings.num_hru_per_batch)); + inspector.field("num_hru_per_batch",distributed_settings.num_hru_per_batch), + inspector.field("heartbeat_interval",distributed_settings.heartbeat_interval), + inspector.field("lost_node_threshold",distributed_settings.lost_node_threshold)); } diff --git a/build/includes/summa_actor/client.hpp b/build/includes/summa_actor/client.hpp index 3da062d..5883e98 100644 --- a/build/includes/summa_actor/client.hpp +++ b/build/includes/summa_actor/client.hpp @@ -82,7 +82,7 @@ class Client { class Client_Container { private: int num_clients = 0; - int lost_client_threshold = 3; // value to determine if client is lost + int lost_client_threshold; // value to determine if client is lost std::vector<Client> client_list; @@ -90,7 +90,7 @@ class Client_Container { /** * @brief Construct a new Client_Container object */ - Client_Container(); + Client_Container(int lost_node_threshold); // Getters /** diff --git a/build/includes/summa_actor/summa_server.hpp b/build/includes/summa_actor/summa_server.hpp index bd2f66b..27fa35e 100644 --- a/build/includes/summa_actor/summa_server.hpp +++ b/build/includes/summa_actor/summa_server.hpp @@ -25,7 +25,6 @@ struct summa_server_state { Client_Container *client_container; Batch_Container *batch_container; - int heartbeat_interval = 20; caf::actor health_check_reminder_actor; Distributed_Settings distributed_settings; diff --git a/build/source/actors/global/settings_functions.cpp b/build/source/actors/global/settings_functions.cpp index 37f1270..b0656ba 100644 --- a/build/source/actors/global/settings_functions.cpp +++ b/build/source/actors/global/settings_functions.cpp @@ -26,6 +26,12 @@ int read_settings_from_json(std::string json_settings_file, distributed_settings.num_hru_per_batch = getSettings(json_settings_file, parent_key, "num_hru_per_batch", distributed_settings.num_hru_per_batch).value_or(-1); + distributed_settings.heartbeat_interval = getSettings(json_settings_file, parent_key, + "heartbeat_interval", distributed_settings.heartbeat_interval).value_or(-1); + + distributed_settings.lost_node_threshold = getSettings(json_settings_file, parent_key, + "lost_node_threshold", distributed_settings.lost_node_threshold).value_or(-1); + // read settings for summa actor parent_key = "Summa_Actor"; @@ -75,7 +81,9 @@ void check_settings_from_json(Distributed_Settings &distributed_settings, std::cout << distributed_settings.hostname << "\n"; std::cout << distributed_settings.port << "\n"; std::cout << distributed_settings.total_hru_count << "\n"; - std::cout << distributed_settings.num_hru_per_batch << "\n\n\n"; + std::cout << distributed_settings.num_hru_per_batch << "\n"; + std::cout << distributed_settings.heartbeat_interval << "\n"; + std::cout << distributed_settings.lost_node_threshold << "\n\n\n"; std::cout << "************ SUMMA_ACTOR_SETTINGS ************\n"; std::cout << summa_actor_settings.max_gru_per_job << "\n\n\n"; diff --git a/build/source/actors/main.cpp b/build/source/actors/main.cpp index 78b0226..c4ab5ca 100644 --- a/build/source/actors/main.cpp +++ b/build/source/actors/main.cpp @@ -101,8 +101,10 @@ void caf_main(actor_system& sys, const config& cfg) { aout(self) << "Printing Settings For SUMMA Simulation\n"; check_settings_from_json(distributed_settings, - summa_actor_settings, file_access_actor_settings, job_actor_settings, - hru_actor_settings); + summa_actor_settings, + file_access_actor_settings, + job_actor_settings, + hru_actor_settings); if (distributed_settings.distributed_mode) { // only command line arguments needed are config_file and server-mode diff --git a/build/source/actors/summa_actor/client.cpp b/build/source/actors/summa_actor/client.cpp index 52c3653..34f81cf 100644 --- a/build/source/actors/summa_actor/client.cpp +++ b/build/source/actors/summa_actor/client.cpp @@ -47,7 +47,9 @@ void Client::decrementLostPotential() { //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// -Client_Container::Client_Container() {} +Client_Container::Client_Container(int lost_node_threshold) { + this->lost_client_threshold = lost_node_threshold; +} void Client_Container::addClient(caf::actor client_actor, std::string hostname) { int client_id = this->num_clients; diff --git a/build/source/actors/summa_actor/summa_server.cpp b/build/source/actors/summa_actor/summa_server.cpp index e526d11..bab0586 100644 --- a/build/source/actors/summa_actor/summa_server.cpp +++ b/build/source/actors/summa_actor/summa_server.cpp @@ -24,7 +24,7 @@ behavior summa_server(stateful_actor<summa_server_state>* self, Distributed_Sett self->state.job_actor_settings = job_actor_settings; self->state.hru_actor_settings = hru_actor_settings; - self->state.client_container = new Client_Container(); + self->state.client_container = new Client_Container(self->state.distributed_settings.lost_node_threshold); self->state.batch_container = new Batch_Container( self->state.distributed_settings.total_hru_count, self->state.distributed_settings.num_hru_per_batch); @@ -34,7 +34,7 @@ behavior summa_server(stateful_actor<summa_server_state>* self, Distributed_Sett // Start the heartbeat actor after a client has connected self->state.health_check_reminder_actor = self->spawn(cleint_health_check_reminder); self->send(self->state.health_check_reminder_actor, - start_health_check_v, self, self->state.heartbeat_interval); + start_health_check_v, self, self->state.distributed_settings.heartbeat_interval); return { /** @@ -116,7 +116,7 @@ behavior summa_server(stateful_actor<summa_server_state>* self, Distributed_Sett } } self->send(self->state.health_check_reminder_actor, - start_health_check_v, self, self->state.heartbeat_interval); + start_health_check_v, self, self->state.distributed_settings.heartbeat_interval); }, [=](heartbeat, int client_id) { -- GitLab