Commit 08da8a31 authored by Marc Vef's avatar Marc Vef
Browse files

Adding daemon boiler plate for expansion

parent 3f1b02cf
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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;
@@ -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;
@@ -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;
+4 −0
Original line number Diff line number Diff line
@@ -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
+6 −6
Original line number Diff line number Diff line
@@ -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";
@@ -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;
+25 −1
Original line number Diff line number Diff line
@@ -56,7 +56,9 @@ namespace daemon {
class FsData {

private:
    FsData() = default;
    FsData();

    ~FsData();

    // logger
    std::shared_ptr<spdlog::logger> spdlogger_;
@@ -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() {
@@ -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);
};


+9 −0
Original line number Diff line number Diff line
@@ -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