Loading include/client/rpc/rpc_types.hpp +3 −3 Original line number Diff line number Diff line Loading @@ -3740,7 +3740,7 @@ struct expand_start { constexpr static const hg_id_t mercury_id = 0; // RPC name constexpr static const auto name = gkfs::rpc::malleable::tag::expand_start; constexpr static const auto name = gkfs::malleable::rpc::tag::expand_start; // requires response? constexpr static const auto requires_response = true; Loading Loading @@ -3859,7 +3859,7 @@ struct expand_status { constexpr static const hg_id_t mercury_id = 0; // RPC name constexpr static const auto name = gkfs::rpc::malleable::tag::expand_status; constexpr static const auto name = gkfs::malleable::rpc::tag::expand_status; // requires response? constexpr static const auto requires_response = true; Loading Loading @@ -3961,7 +3961,7 @@ struct expand_finalize { // RPC name constexpr static const auto name = gkfs::rpc::malleable::tag::expand_finalize; gkfs::malleable::rpc::tag::expand_finalize; // requires response? constexpr static const auto requires_response = true; Loading include/client/user_functions.hpp +4 −0 Original line number Diff line number Diff line Loading @@ -98,6 +98,10 @@ expand_start(int old_server_conf, int new_server_conf); int expand_status(); /** * @brief Finalize the expansion process * @return error code */ int expand_finalize(); } // namespace malleable Loading include/common/common_defs.hpp +6 −6 Original line number Diff line number Diff line Loading @@ -81,12 +81,6 @@ constexpr auto proxy_daemon_read = "proxy_daemon_rpc_srv_read_data"; } // namespace tag namespace malleable::tag { constexpr auto expand_start = "rpc_srv_expand_start"; constexpr auto expand_status = "rpc_srv_expand_status"; constexpr auto expand_finalize = "rpc_srv_expand_finalize"; } // namespace malleable::tag namespace protocol { constexpr auto na_sm = "na+sm"; constexpr auto ofi_sockets = "ofi+sockets"; Loading @@ -111,6 +105,12 @@ constexpr auto all_remote_protocols = {ofi_sockets, ofi_tcp, ofi_verbs, } // namespace protocol } // namespace gkfs::rpc namespace gkfs::malleable::rpc::tag { constexpr auto expand_start = "rpc_srv_expand_start"; constexpr auto expand_status = "rpc_srv_expand_status"; constexpr auto expand_finalize = "rpc_srv_expand_finalize"; } // namespace gkfs::malleable::rpc::tag namespace gkfs::config::syscall::stat { // Number 512-byte blocks allocated as it is in the linux kernel (struct_stat.h) constexpr auto st_nblocksize = 512; Loading include/daemon/classes/fs_data.hpp +25 −1 Original line number Diff line number Diff line Loading @@ -56,7 +56,9 @@ namespace daemon { class FsData { private: FsData() = default; FsData(); ~FsData(); // logger std::shared_ptr<spdlog::logger> spdlogger_; Loading Loading @@ -104,6 +106,16 @@ private: // Prometheus std::string prometheus_gateway_ = gkfs::config::stats::prometheus_gateway; // Malleability // maintenance mode is used to prevent new RPCs to the filesystem and // indicates for clients: try again. Is set to true when redist is running bool maintenance_mode_ = false; ABT_mutex maintenance_mode_mutex_; // redist_running_ indicates to client that redistribution is running bool redist_running_ = false; ABT_thread redist_thread_; public: static FsData* getInstance() { Loading Loading @@ -284,6 +296,18 @@ public: void prometheus_gateway(const std::string& prometheus_gateway_); bool maintenance_mode() const; void maintenance_mode(bool maintenance_mode); bool redist_running() const; void redist_running(bool redist_running); }; Loading include/daemon/handler/rpc_defs.hpp +9 −0 Original line number Diff line number Diff line Loading @@ -84,4 +84,13 @@ DECLARE_MARGO_RPC_HANDLER(proxy_rpc_srv_read) DECLARE_MARGO_RPC_HANDLER(proxy_rpc_srv_write) // malleability DECLARE_MARGO_RPC_HANDLER(rpc_srv_expand_start) DECLARE_MARGO_RPC_HANDLER(rpc_srv_expand_status) DECLARE_MARGO_RPC_HANDLER(rpc_srv_expand_finalize) #endif // GKFS_DAEMON_RPC_DEFS_HPP Loading
include/client/rpc/rpc_types.hpp +3 −3 Original line number Diff line number Diff line Loading @@ -3740,7 +3740,7 @@ struct expand_start { constexpr static const hg_id_t mercury_id = 0; // RPC name constexpr static const auto name = gkfs::rpc::malleable::tag::expand_start; constexpr static const auto name = gkfs::malleable::rpc::tag::expand_start; // requires response? constexpr static const auto requires_response = true; Loading Loading @@ -3859,7 +3859,7 @@ struct expand_status { constexpr static const hg_id_t mercury_id = 0; // RPC name constexpr static const auto name = gkfs::rpc::malleable::tag::expand_status; constexpr static const auto name = gkfs::malleable::rpc::tag::expand_status; // requires response? constexpr static const auto requires_response = true; Loading Loading @@ -3961,7 +3961,7 @@ struct expand_finalize { // RPC name constexpr static const auto name = gkfs::rpc::malleable::tag::expand_finalize; gkfs::malleable::rpc::tag::expand_finalize; // requires response? constexpr static const auto requires_response = true; Loading
include/client/user_functions.hpp +4 −0 Original line number Diff line number Diff line Loading @@ -98,6 +98,10 @@ expand_start(int old_server_conf, int new_server_conf); int expand_status(); /** * @brief Finalize the expansion process * @return error code */ int expand_finalize(); } // namespace malleable Loading
include/common/common_defs.hpp +6 −6 Original line number Diff line number Diff line Loading @@ -81,12 +81,6 @@ constexpr auto proxy_daemon_read = "proxy_daemon_rpc_srv_read_data"; } // namespace tag namespace malleable::tag { constexpr auto expand_start = "rpc_srv_expand_start"; constexpr auto expand_status = "rpc_srv_expand_status"; constexpr auto expand_finalize = "rpc_srv_expand_finalize"; } // namespace malleable::tag namespace protocol { constexpr auto na_sm = "na+sm"; constexpr auto ofi_sockets = "ofi+sockets"; Loading @@ -111,6 +105,12 @@ constexpr auto all_remote_protocols = {ofi_sockets, ofi_tcp, ofi_verbs, } // namespace protocol } // namespace gkfs::rpc namespace gkfs::malleable::rpc::tag { constexpr auto expand_start = "rpc_srv_expand_start"; constexpr auto expand_status = "rpc_srv_expand_status"; constexpr auto expand_finalize = "rpc_srv_expand_finalize"; } // namespace gkfs::malleable::rpc::tag namespace gkfs::config::syscall::stat { // Number 512-byte blocks allocated as it is in the linux kernel (struct_stat.h) constexpr auto st_nblocksize = 512; Loading
include/daemon/classes/fs_data.hpp +25 −1 Original line number Diff line number Diff line Loading @@ -56,7 +56,9 @@ namespace daemon { class FsData { private: FsData() = default; FsData(); ~FsData(); // logger std::shared_ptr<spdlog::logger> spdlogger_; Loading Loading @@ -104,6 +106,16 @@ private: // Prometheus std::string prometheus_gateway_ = gkfs::config::stats::prometheus_gateway; // Malleability // maintenance mode is used to prevent new RPCs to the filesystem and // indicates for clients: try again. Is set to true when redist is running bool maintenance_mode_ = false; ABT_mutex maintenance_mode_mutex_; // redist_running_ indicates to client that redistribution is running bool redist_running_ = false; ABT_thread redist_thread_; public: static FsData* getInstance() { Loading Loading @@ -284,6 +296,18 @@ public: void prometheus_gateway(const std::string& prometheus_gateway_); bool maintenance_mode() const; void maintenance_mode(bool maintenance_mode); bool redist_running() const; void redist_running(bool redist_running); }; Loading
include/daemon/handler/rpc_defs.hpp +9 −0 Original line number Diff line number Diff line Loading @@ -84,4 +84,13 @@ DECLARE_MARGO_RPC_HANDLER(proxy_rpc_srv_read) DECLARE_MARGO_RPC_HANDLER(proxy_rpc_srv_write) // malleability DECLARE_MARGO_RPC_HANDLER(rpc_srv_expand_start) DECLARE_MARGO_RPC_HANDLER(rpc_srv_expand_status) DECLARE_MARGO_RPC_HANDLER(rpc_srv_expand_finalize) #endif // GKFS_DAEMON_RPC_DEFS_HPP