Commit 49349524 authored by Marc Vef's avatar Marc Vef
Browse files

Added metadata migration

parent 2f238134
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -109,6 +109,8 @@ 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";
constexpr auto migrate_metadata = "rpc_srv_migrate_metadata";
constexpr auto migrate_data = "rpc_srv_migrate_data";
} // namespace gkfs::malleable::rpc::tag

namespace gkfs::config::syscall::stat {
+10 −1
Original line number Diff line number Diff line
@@ -164,9 +164,18 @@ MERCURY_GEN_PROC(rpc_proxy_get_dirents_in_t,
                 ((hg_const_string_t) (path))((int32_t) (server))(
                         (hg_bulk_t) (bulk_handle)))

// malleability
// malleability client <-> daemon

MERCURY_GEN_PROC(rpc_expand_start_in_t,
                 ((uint32_t) (old_server_conf))((uint32_t) (new_server_conf)))

// malleability daemon <-> daemon

MERCURY_GEN_PROC(rpc_migrate_metadata_in_t,
                 ((hg_const_string_t) (key))((hg_const_string_t) (value)))

MERCURY_GEN_PROC(rpc_migrate_data_in_t,
                 ((hg_const_string_t) (path))((hg_uint64_t) (chunk_id))(
                         (hg_bulk_t) (bulk_handle)))

#endif // LFS_RPC_TYPES_HPP
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ target_sources(
         handler/rpc_defs.hpp
         handler/rpc_util.hpp
    malleability/malleable_manager.hpp
    malleability/rpc/forward_redistribution.hpp
)

if(GKFS_ENABLE_AGIOS)
+7 −1
Original line number Diff line number Diff line
@@ -164,8 +164,14 @@ public:
     * @brief Iterate over complete database, note ONLY used for debugging and
     * is therefore unused.
     */
    void
    void*
    iterate_all() const;

    /**
     * @brief Returns an estimated db size, i.e., number of KV pairs
     */
    uint64_t
    db_size() const;
};

} // namespace gkfs::metadata
+11 −3
Original line number Diff line number Diff line
@@ -73,8 +73,11 @@ public:
    virtual std::vector<std::tuple<std::string, bool, size_t, time_t>>
    get_dirents_extended(const std::string& dir) const = 0;

    virtual void
    virtual void*
    iterate_all() const = 0;

    virtual uint64_t
    db_size() const = 0;
};

template <typename T>
@@ -137,9 +140,14 @@ public:
        return static_cast<T const&>(*this).get_dirents_extended_impl(dir);
    }

    void
    void*
    iterate_all() const {
        static_cast<T const&>(*this).iterate_all_impl();
        return static_cast<T const&>(*this).iterate_all_impl();
    }

    uint64_t
    db_size() const {
        return static_cast<T const&>(*this).db_size_impl();
    }
};

Loading