Loading include/client/rpc/forward_malleability.hpp +5 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,8 @@ */ #include <string> #include <utility> #include <common/rpc/rpc_types_thallium.hpp> #ifndef GEKKOFS_CLIENT_FORWARD_MALLEABILITY_HPP #define GEKKOFS_CLIENT_FORWARD_MALLEABILITY_HPP Loading @@ -51,6 +53,9 @@ forward_mutate_start(int old_server_conf, int new_server_conf, int forward_mutate_status(); std::pair<int, gkfs::rpc::rpc_mutate_detailed_status_out_t> forward_mutate_detailed_status(); int forward_mutate_finalize(); Loading include/client/user_functions.hpp +21 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ #include <string> #include <cstdint> #include <vector> #include <utility> extern "C" { Loading Loading @@ -156,6 +157,19 @@ gkfs_msync(void* addr, size_t length, int flags); } // namespace syscall namespace malleable { struct MalleabilityStatus { uint64_t old_nodes{0}; uint64_t new_nodes{0}; uint64_t jobs_total{0}; uint64_t jobs_completed{0}; uint64_t jobs_succeeded{0}; uint64_t jobs_failed{0}; uint64_t bytes_transferred{0}; bool running{false}; bool failed{false}; std::string hosts_file; }; /** * @brief Start a mutation of the file system cluster topology. * Loading Loading @@ -201,6 +215,13 @@ mutate_start(int old_server_conf, int new_server_conf, int mutate_status(); /** * @brief Return detailed, machine-readable mutate progress. * @return pair of aggregate error code and detailed status payload */ std::pair<int, MalleabilityStatus> mutate_status_detailed(); /** * @brief Finalize the mutate process. * Rewrites the workspace hostfile clean (promotes + to active, removes Loading include/common/common_defs.hpp +1 −0 Original line number Diff line number Diff line Loading @@ -131,6 +131,7 @@ namespace malleable::rpc::tag { // Primary mutate RPC tags constexpr auto mutate_start = "rpc_srv_mutate_start"; constexpr auto mutate_status = "rpc_srv_mutate_status"; constexpr auto mutate_detailed_status = "rpc_srv_mutate_detailed_status"; constexpr auto mutate_finalize = "rpc_srv_mutate_finalize"; constexpr auto mutate_reload = "rpc_srv_mutate_reload"; constexpr auto mutate_shutdown = "rpc_srv_mutate_shutdown"; Loading include/common/rpc/rpc_types_thallium.hpp +22 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,28 @@ struct rpc_err_out_t { } }; struct rpc_mutate_detailed_status_out_t { int32_t err{0}; uint64_t old_nodes{0}; uint64_t new_nodes{0}; uint64_t jobs_total{0}; uint64_t jobs_completed{0}; uint64_t jobs_succeeded{0}; uint64_t jobs_failed{0}; uint64_t bytes_transferred{0}; bool running{false}; bool failed{false}; std::string hosts_file; template <class Archive> void serialize(Archive& ar) { ar(err, old_nodes, new_nodes, jobs_total, jobs_completed, jobs_succeeded, jobs_failed, bytes_transferred, running, failed, hosts_file); } }; // Metadentry struct rpc_mk_node_in_t { std::string path; Loading include/daemon/classes/fs_data.hpp +35 −0 Original line number Diff line number Diff line Loading @@ -148,6 +148,11 @@ private: // redist_failed_ indicates that the last redistribution did not complete // successfully and must not be finalized. std::atomic<bool> redist_failed_{false}; std::atomic<uint64_t> redist_jobs_total_{0}; std::atomic<uint64_t> redist_jobs_completed_{0}; std::atomic<uint64_t> redist_jobs_succeeded_{0}; std::atomic<uint64_t> redist_jobs_failed_{0}; std::atomic<uint64_t> redist_bytes_transferred_{0}; bool expand_on_demand_active_ = false; unsigned int expand_on_demand_old_hosts_size_ = 0; Loading Loading @@ -389,6 +394,15 @@ public: bool mutate_start_active() const; int mutate_old_server_conf() const; int mutate_new_server_conf() const; std::string mutate_hosts_file() const; bool redist_running() const; Loading @@ -401,6 +415,27 @@ public: void redist_failed(bool redist_failed); uint64_t redist_jobs_total() const; void redist_jobs_total(uint64_t value); uint64_t redist_jobs_completed() const; void redist_jobs_completed(uint64_t value); uint64_t redist_jobs_succeeded() const; void redist_jobs_succeeded(uint64_t value); uint64_t redist_jobs_failed() const; void redist_jobs_failed(uint64_t value); uint64_t redist_bytes_transferred() const; void redist_bytes_transferred(uint64_t value); const std::shared_ptr<gkfs::malleable::MalleableManager>& malleable_manager() const; Loading Loading
include/client/rpc/forward_malleability.hpp +5 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,8 @@ */ #include <string> #include <utility> #include <common/rpc/rpc_types_thallium.hpp> #ifndef GEKKOFS_CLIENT_FORWARD_MALLEABILITY_HPP #define GEKKOFS_CLIENT_FORWARD_MALLEABILITY_HPP Loading @@ -51,6 +53,9 @@ forward_mutate_start(int old_server_conf, int new_server_conf, int forward_mutate_status(); std::pair<int, gkfs::rpc::rpc_mutate_detailed_status_out_t> forward_mutate_detailed_status(); int forward_mutate_finalize(); Loading
include/client/user_functions.hpp +21 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ #include <string> #include <cstdint> #include <vector> #include <utility> extern "C" { Loading Loading @@ -156,6 +157,19 @@ gkfs_msync(void* addr, size_t length, int flags); } // namespace syscall namespace malleable { struct MalleabilityStatus { uint64_t old_nodes{0}; uint64_t new_nodes{0}; uint64_t jobs_total{0}; uint64_t jobs_completed{0}; uint64_t jobs_succeeded{0}; uint64_t jobs_failed{0}; uint64_t bytes_transferred{0}; bool running{false}; bool failed{false}; std::string hosts_file; }; /** * @brief Start a mutation of the file system cluster topology. * Loading Loading @@ -201,6 +215,13 @@ mutate_start(int old_server_conf, int new_server_conf, int mutate_status(); /** * @brief Return detailed, machine-readable mutate progress. * @return pair of aggregate error code and detailed status payload */ std::pair<int, MalleabilityStatus> mutate_status_detailed(); /** * @brief Finalize the mutate process. * Rewrites the workspace hostfile clean (promotes + to active, removes Loading
include/common/common_defs.hpp +1 −0 Original line number Diff line number Diff line Loading @@ -131,6 +131,7 @@ namespace malleable::rpc::tag { // Primary mutate RPC tags constexpr auto mutate_start = "rpc_srv_mutate_start"; constexpr auto mutate_status = "rpc_srv_mutate_status"; constexpr auto mutate_detailed_status = "rpc_srv_mutate_detailed_status"; constexpr auto mutate_finalize = "rpc_srv_mutate_finalize"; constexpr auto mutate_reload = "rpc_srv_mutate_reload"; constexpr auto mutate_shutdown = "rpc_srv_mutate_shutdown"; Loading
include/common/rpc/rpc_types_thallium.hpp +22 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,28 @@ struct rpc_err_out_t { } }; struct rpc_mutate_detailed_status_out_t { int32_t err{0}; uint64_t old_nodes{0}; uint64_t new_nodes{0}; uint64_t jobs_total{0}; uint64_t jobs_completed{0}; uint64_t jobs_succeeded{0}; uint64_t jobs_failed{0}; uint64_t bytes_transferred{0}; bool running{false}; bool failed{false}; std::string hosts_file; template <class Archive> void serialize(Archive& ar) { ar(err, old_nodes, new_nodes, jobs_total, jobs_completed, jobs_succeeded, jobs_failed, bytes_transferred, running, failed, hosts_file); } }; // Metadentry struct rpc_mk_node_in_t { std::string path; Loading
include/daemon/classes/fs_data.hpp +35 −0 Original line number Diff line number Diff line Loading @@ -148,6 +148,11 @@ private: // redist_failed_ indicates that the last redistribution did not complete // successfully and must not be finalized. std::atomic<bool> redist_failed_{false}; std::atomic<uint64_t> redist_jobs_total_{0}; std::atomic<uint64_t> redist_jobs_completed_{0}; std::atomic<uint64_t> redist_jobs_succeeded_{0}; std::atomic<uint64_t> redist_jobs_failed_{0}; std::atomic<uint64_t> redist_bytes_transferred_{0}; bool expand_on_demand_active_ = false; unsigned int expand_on_demand_old_hosts_size_ = 0; Loading Loading @@ -389,6 +394,15 @@ public: bool mutate_start_active() const; int mutate_old_server_conf() const; int mutate_new_server_conf() const; std::string mutate_hosts_file() const; bool redist_running() const; Loading @@ -401,6 +415,27 @@ public: void redist_failed(bool redist_failed); uint64_t redist_jobs_total() const; void redist_jobs_total(uint64_t value); uint64_t redist_jobs_completed() const; void redist_jobs_completed(uint64_t value); uint64_t redist_jobs_succeeded() const; void redist_jobs_succeeded(uint64_t value); uint64_t redist_jobs_failed() const; void redist_jobs_failed(uint64_t value); uint64_t redist_bytes_transferred() const; void redist_bytes_transferred(uint64_t value); const std::shared_ptr<gkfs::malleable::MalleableManager>& malleable_manager() const; Loading