Loading lfs/src/classes/fs_data.cpp +25 −7 Original line number Diff line number Diff line Loading @@ -142,22 +142,38 @@ void FsData::inode_count(fuse_ino_t inode_count) { FsData::inode_count_ = inode_count; } const std::map<std::string, unsigned int>& FsData::hosts() const { const std::map<uint64_t, std::string>& FsData::hosts() const { return hosts_; } void FsData::hosts(const std::map<std::string, unsigned int>& hosts) { void FsData::hosts(const std::map<uint64_t, std::string>& hosts) { FsData::hosts_ = hosts; } const std::string& FsData::hostname() const { return hostname_; const uint64_t& FsData::host_id() const { return host_id_; } unsigned long FsData::hostname(const std::string& hostname) { FsData::hostname_ = hostname; return hostname.size(); void FsData::host_id(const uint64_t& host_id) { FsData::host_id_ = host_id; } size_t FsData::host_size() const { return host_size_; } void FsData::host_size(size_t host_size) { FsData::host_size_ = host_size; } int FsData::rpc_port() const { return rpc_port_; } void FsData::rpc_port(int rpc_port) { FsData::rpc_port_ = rpc_port; } // Utility member functions fuse_ino_t FsData::raise_inode_count(fuse_ino_t count) { Loading @@ -169,3 +185,5 @@ fuse_ino_t FsData::raise_inode_count(fuse_ino_t count) { lfs/src/classes/fs_data.hpp +16 −6 Original line number Diff line number Diff line Loading @@ -35,8 +35,10 @@ private: std::string mgmt_path_; // hosts_ std::map<std::string, unsigned int> hosts_; std::string hostname_; std::map<uint64_t, std::string> hosts_; uint64_t host_id_; // my host number size_t host_size_; int rpc_port_; // rocksdb std::shared_ptr<rocksdb::DB> rdb_; Loading Loading @@ -131,13 +133,21 @@ public: void rdb_write_options(const rocksdb::WriteOptions& rdb_write_options); const std::map<std::string, unsigned int>& hosts() const; const std::map<uint64_t, std::string>& hosts() const; void hosts(const std::map<std::string, unsigned int>& hosts); void hosts(const std::map<uint64_t, std::string>& hosts); const std::string& hostname() const; const uint64_t& host_id() const; unsigned long hostname(const std::string& hostname); void host_id(const uint64_t& host_id); size_t host_size() const; void host_size(size_t host_size); int rpc_port() const; void rpc_port(int rpc_port); // Utility member functions Loading lfs/src/classes/rpc_data.cpp +18 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,24 @@ void RPCData::rpc_minimal_id(hg_id_t rpc_minimal_id) { RPCData::rpc_minimal_id_ = rpc_minimal_id; } lru11::Cache<std::string, hg_addr_t>& RPCData::address_cache() { lru11::Cache<uint64_t, hg_addr_t>& RPCData::address_cache() { return address_cache_; } // Utility functions bool RPCData::get_addr_by_hostid(const uint64_t hostid, hg_addr_t& svr_addr) { if (address_cache_.tryGet(hostid, svr_addr)) { //found return true; } else { // not found, manual lookup and add address mapping to LRU cache auto hostname = ADAFS_DATA->hosts().at(hostid); // convert hostid to hostname margo_addr_lookup(RPC_DATA->client_mid(), hostname.c_str(), &svr_addr); if (svr_addr == HG_ADDR_NULL) return false; address_cache_.insert(hostid, svr_addr); return true; } } lfs/src/classes/rpc_data.hpp +6 −2 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ private: margo_instance_id server_mid_; margo_instance_id client_mid_; lru11::Cache<std::string, hg_addr_t> address_cache_{32768, 4096}; // XXX Set values are not based on anything... lru11::Cache<uint64_t, hg_addr_t> address_cache_{32768, 4096}; // XXX Set values are not based on anything... // TODO RPC client IDs // RPC client IDs Loading Loading @@ -74,7 +74,11 @@ public: void rpc_minimal_id(hg_id_t rpc_minimal_id); lru11::Cache<std::string, hg_addr_t>& address_cache(); lru11::Cache<uint64_t, hg_addr_t>& address_cache(); // Utility functions bool get_addr_by_hostid(const uint64_t hostid, hg_addr_t& svr_addr); }; Loading lfs/src/configure.hpp +3 −0 Original line number Diff line number Diff line Loading @@ -19,4 +19,7 @@ // Write-ahead logging of rocksdb //#define RDB_WOL // RPC configuration #define RPCPORT 4433 #endif //FS_CONFIGURE_H Loading
lfs/src/classes/fs_data.cpp +25 −7 Original line number Diff line number Diff line Loading @@ -142,22 +142,38 @@ void FsData::inode_count(fuse_ino_t inode_count) { FsData::inode_count_ = inode_count; } const std::map<std::string, unsigned int>& FsData::hosts() const { const std::map<uint64_t, std::string>& FsData::hosts() const { return hosts_; } void FsData::hosts(const std::map<std::string, unsigned int>& hosts) { void FsData::hosts(const std::map<uint64_t, std::string>& hosts) { FsData::hosts_ = hosts; } const std::string& FsData::hostname() const { return hostname_; const uint64_t& FsData::host_id() const { return host_id_; } unsigned long FsData::hostname(const std::string& hostname) { FsData::hostname_ = hostname; return hostname.size(); void FsData::host_id(const uint64_t& host_id) { FsData::host_id_ = host_id; } size_t FsData::host_size() const { return host_size_; } void FsData::host_size(size_t host_size) { FsData::host_size_ = host_size; } int FsData::rpc_port() const { return rpc_port_; } void FsData::rpc_port(int rpc_port) { FsData::rpc_port_ = rpc_port; } // Utility member functions fuse_ino_t FsData::raise_inode_count(fuse_ino_t count) { Loading @@ -169,3 +185,5 @@ fuse_ino_t FsData::raise_inode_count(fuse_ino_t count) {
lfs/src/classes/fs_data.hpp +16 −6 Original line number Diff line number Diff line Loading @@ -35,8 +35,10 @@ private: std::string mgmt_path_; // hosts_ std::map<std::string, unsigned int> hosts_; std::string hostname_; std::map<uint64_t, std::string> hosts_; uint64_t host_id_; // my host number size_t host_size_; int rpc_port_; // rocksdb std::shared_ptr<rocksdb::DB> rdb_; Loading Loading @@ -131,13 +133,21 @@ public: void rdb_write_options(const rocksdb::WriteOptions& rdb_write_options); const std::map<std::string, unsigned int>& hosts() const; const std::map<uint64_t, std::string>& hosts() const; void hosts(const std::map<std::string, unsigned int>& hosts); void hosts(const std::map<uint64_t, std::string>& hosts); const std::string& hostname() const; const uint64_t& host_id() const; unsigned long hostname(const std::string& hostname); void host_id(const uint64_t& host_id); size_t host_size() const; void host_size(size_t host_size); int rpc_port() const; void rpc_port(int rpc_port); // Utility member functions Loading
lfs/src/classes/rpc_data.cpp +18 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,24 @@ void RPCData::rpc_minimal_id(hg_id_t rpc_minimal_id) { RPCData::rpc_minimal_id_ = rpc_minimal_id; } lru11::Cache<std::string, hg_addr_t>& RPCData::address_cache() { lru11::Cache<uint64_t, hg_addr_t>& RPCData::address_cache() { return address_cache_; } // Utility functions bool RPCData::get_addr_by_hostid(const uint64_t hostid, hg_addr_t& svr_addr) { if (address_cache_.tryGet(hostid, svr_addr)) { //found return true; } else { // not found, manual lookup and add address mapping to LRU cache auto hostname = ADAFS_DATA->hosts().at(hostid); // convert hostid to hostname margo_addr_lookup(RPC_DATA->client_mid(), hostname.c_str(), &svr_addr); if (svr_addr == HG_ADDR_NULL) return false; address_cache_.insert(hostid, svr_addr); return true; } }
lfs/src/classes/rpc_data.hpp +6 −2 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ private: margo_instance_id server_mid_; margo_instance_id client_mid_; lru11::Cache<std::string, hg_addr_t> address_cache_{32768, 4096}; // XXX Set values are not based on anything... lru11::Cache<uint64_t, hg_addr_t> address_cache_{32768, 4096}; // XXX Set values are not based on anything... // TODO RPC client IDs // RPC client IDs Loading Loading @@ -74,7 +74,11 @@ public: void rpc_minimal_id(hg_id_t rpc_minimal_id); lru11::Cache<std::string, hg_addr_t>& address_cache(); lru11::Cache<uint64_t, hg_addr_t>& address_cache(); // Utility functions bool get_addr_by_hostid(const uint64_t hostid, hg_addr_t& svr_addr); }; Loading
lfs/src/configure.hpp +3 −0 Original line number Diff line number Diff line Loading @@ -19,4 +19,7 @@ // Write-ahead logging of rocksdb //#define RDB_WOL // RPC configuration #define RPCPORT 4433 #endif //FS_CONFIGURE_H