3232#include < memory>
3333#include < string>
3434#include < unordered_map>
35- #include < utility>
3635
3736#include " cache/common/macro.h"
3837#include " cache/utils/helper.h"
@@ -52,17 +51,6 @@ DEFINE_string(mds_addrs, "",
5251 " Cache group member manager service rpc addresses" );
5352DEFINE_validator (mds_addrs, Helper::NonEmptyString);
5453
55- DEFINE_string (mds_version, " v2" ,
56- " MDS version for member managment, 'v1' or 'v2'" );
57-
58- DEFINE_uint64 (mdsv1_rpc_retry_total_ms, 16000 , " " );
59- DEFINE_uint64 (mdsv1_rpc_max_timeout_ms, 2000 , " " );
60- DEFINE_uint64 (mdsv1_rpc_timeout_ms, 500 , " " );
61- DEFINE_uint64 (mdsv1_rpc_retry_interval_us, 50000 , " " );
62- DEFINE_uint64 (mdsv1_rpc_max_failed_times_before_change_addr, 2 , " " );
63- DEFINE_uint64 (mdsv1_rpc_normal_retry_times_before_trigger_wait, 3 , " " );
64- DEFINE_uint64 (mdsv1_rpc_wait_sleep_ms, 1000 , " " );
65-
6654DEFINE_int64 (mds_rpc_timeout_ms, 3000 , " mds rpc timeout" );
6755DEFINE_validator (mds_rpc_timeout_ms, brpc::PassValidate);
6856
@@ -72,12 +60,12 @@ DEFINE_validator(mds_rpc_retry_times, brpc::PassValidate);
7260DEFINE_uint32 (mds_request_retry_times, 3 , " mds rpc request retry time" );
7361DEFINE_validator (mds_request_retry_times, brpc::PassValidate);
7462
75- MDSV2Client::MDSV2Client (const std::string& mds_addr)
63+ MDSClientImpl::MDSClientImpl (const std::string& mds_addr)
7664 : running_(false ),
7765 rpc_ (client::vfs::v2::RPC::New(mds_addr)),
7866 mds_discovery_(std::make_unique<client::vfs::v2::MDSDiscovery>(rpc_)) {}
7967
80- Status MDSV2Client ::Start () {
68+ Status MDSClientImpl ::Start () {
8169 CHECK_NOTNULL (rpc_);
8270 CHECK_NOTNULL (mds_discovery_);
8371
@@ -100,7 +88,7 @@ Status MDSV2Client::Start() {
10088 return Status::OK ();
10189}
10290
103- Status MDSV2Client ::Shutdown () {
91+ Status MDSClientImpl ::Shutdown () {
10492 if (!running_.exchange (false )) {
10593 return Status::OK ();
10694 }
@@ -116,23 +104,22 @@ Status MDSV2Client::Shutdown() {
116104 return Status::OK ();
117105}
118106
119- Status MDSV2Client::GetFSInfo (uint64_t fs_id,
120- pb::common::StorageInfo* storage_info) {
107+ Status MDSClientImpl::GetFSInfo (uint64_t fs_id, pb::mds::FsInfo* fs_info) {
121108 pb::mds::GetFsInfoRequest request;
122109 pb::mds::GetFsInfoResponse response;
123110
124111 request.set_fs_id (fs_id);
125112 auto status = SendRequest (" MDSService" , " GetFsInfo" , request, response);
126113 if (status.ok ()) {
127- *storage_info = ToCommonStorageInfo ( response.fs_info () );
114+ *fs_info = response.fs_info ();
128115 }
129116 return status;
130117}
131118
132- Status MDSV2Client ::JoinCacheGroup (const std::string& want_id,
133- const std::string& ip, uint32_t port,
134- const std::string& group_name,
135- uint32_t weight, std::string* member_id) {
119+ Status MDSClientImpl ::JoinCacheGroup (const std::string& want_id,
120+ const std::string& ip, uint32_t port,
121+ const std::string& group_name,
122+ uint32_t weight, std::string* member_id) {
136123 pb::mds::JoinCacheGroupRequest request;
137124 pb::mds::JoinCacheGroupResponse response;
138125
@@ -157,9 +144,9 @@ Status MDSV2Client::JoinCacheGroup(const std::string& want_id,
157144 return Status::OK ();
158145}
159146
160- Status MDSV2Client ::LeaveCacheGroup (const std::string& member_id,
161- const std::string& ip, uint32_t port,
162- const std::string& group_name) {
147+ Status MDSClientImpl ::LeaveCacheGroup (const std::string& member_id,
148+ const std::string& ip, uint32_t port,
149+ const std::string& group_name) {
163150 pb::mds::LeaveCacheGroupRequest request;
164151 pb::mds::LeaveCacheGroupResponse response;
165152
@@ -178,8 +165,8 @@ Status MDSV2Client::LeaveCacheGroup(const std::string& member_id,
178165 return status;
179166}
180167
181- Status MDSV2Client ::Heartbeat (const std::string& member_id,
182- const std::string& ip, uint32_t port) {
168+ Status MDSClientImpl ::Heartbeat (const std::string& member_id,
169+ const std::string& ip, uint32_t port) {
183170 pb::mds::HeartbeatRequest request;
184171 pb::mds::HeartbeatResponse response;
185172
@@ -198,8 +185,8 @@ Status MDSV2Client::Heartbeat(const std::string& member_id,
198185 return status;
199186}
200187
201- Status MDSV2Client ::ListMembers (const std::string& group_name,
202- std::vector<CacheGroupMember>* members) {
188+ Status MDSClientImpl ::ListMembers (const std::string& group_name,
189+ std::vector<CacheGroupMember>* members) {
203190 pb::mds::ListMembersRequest request;
204191 pb::mds::ListMembersResponse response;
205192
@@ -224,46 +211,7 @@ Status MDSV2Client::ListMembers(const std::string& group_name,
224211 return Status::OK ();
225212}
226213
227- pb::common::S3Info MDSV2Client::ToCommonS3Info (const pb::mds::S3Info& in) {
228- pb::common::S3Info out;
229- out.set_ak (in.ak ());
230- out.set_sk (in.sk ());
231- out.set_endpoint (in.endpoint ());
232- out.set_bucketname (in.bucketname ());
233-
234- return out;
235- }
236-
237- pb::common::RadosInfo MDSV2Client::ToCommonRadosInfo (
238- const pb::mds::RadosInfo& in) {
239- pb::common::RadosInfo out;
240- out.set_user_name (in.user_name ());
241- out.set_key (in.key ());
242- out.set_mon_host (in.mon_host ());
243- out.set_pool_name (in.pool_name ());
244- out.set_cluster_name (in.cluster_name ());
245-
246- return out;
247- }
248-
249- pb::common::StorageInfo MDSV2Client::ToCommonStorageInfo (
250- const pb::mds::FsInfo& fs_info) {
251- pb::common::StorageInfo out;
252- if (fs_info.fs_type () == pb::mds::FsType::S3) {
253- out.set_type (pb::common::StorageType::TYPE_S3);
254- *out.mutable_s3_info () = ToCommonS3Info (fs_info.extra ().s3_info ());
255- } else if (fs_info.fs_type () == pb::mds::FsType::RADOS) {
256- out.set_type (pb::common::StorageType::TYPE_RADOS);
257- *out.mutable_rados_info () = ToCommonRadosInfo (fs_info.extra ().rados_info ());
258- } else {
259- CHECK (false ) << " Unsupported fs type: "
260- << pb::mds::FsType_Name (fs_info.fs_type ());
261- }
262-
263- return out;
264- }
265-
266- CacheGroupMemberState MDSV2Client::ToMemberState (
214+ CacheGroupMemberState MDSClientImpl::ToMemberState (
267215 pb::mds::CacheGroupMemberState state) {
268216 switch (state) {
269217 case pb::mds::CacheGroupMemberStateOnline:
@@ -278,7 +226,7 @@ CacheGroupMemberState MDSV2Client::ToMemberState(
278226 }
279227}
280228
281- mds::MDSMeta MDSV2Client ::GetRandomlyMDS (const mds::MDSMeta& old_mds) {
229+ mds::MDSMeta MDSClientImpl ::GetRandomlyMDS (const mds::MDSMeta& old_mds) {
282230 auto mdses = mds_discovery_->GetNormalMDS (true );
283231 CHECK (!mdses.empty ()) << " No normal mds found" ;
284232
@@ -295,7 +243,7 @@ mds::MDSMeta MDSV2Client::GetRandomlyMDS(const mds::MDSMeta& old_mds) {
295243 return old_mds;
296244}
297245
298- bool MDSV2Client ::ShouldRetry (Status status) {
246+ bool MDSClientImpl ::ShouldRetry (Status status) {
299247 static std::unordered_map<int , bool > should_retry_errnos = {
300248 {pb::error::EROUTER_EPOCH_CHANGE, true },
301249 {pb::error::ENOT_SERVE, true },
@@ -305,11 +253,11 @@ bool MDSV2Client::ShouldRetry(Status status) {
305253 return status.IsNetError () || should_retry_errnos.count (status.Errno ()) != 0 ;
306254}
307255
308- bool MDSV2Client ::ShouldSetMDSAbormal (Status status) {
256+ bool MDSClientImpl ::ShouldSetMDSAbormal (Status status) {
309257 return status.IsInternal () || status.IsNetError ();
310258}
311259
312- bool MDSV2Client ::ShouldRefreshMDSList (Status status) {
260+ bool MDSClientImpl ::ShouldRefreshMDSList (Status status) {
313261 static std::unordered_map<int , bool > should_refresh_errnos = {
314262 {pb::error::EROUTER_EPOCH_CHANGE, true },
315263 {pb::error::ENOT_SERVE, true },
@@ -319,9 +267,9 @@ bool MDSV2Client::ShouldRefreshMDSList(Status status) {
319267}
320268
321269template <typename Request, typename Response>
322- Status MDSV2Client ::SendRequest (const std::string& service_name,
323- const std::string& api_name, Request& request,
324- Response& response) {
270+ Status MDSClientImpl ::SendRequest (const std::string& service_name,
271+ const std::string& api_name, Request& request,
272+ Response& response) {
325273 mds::MDSMeta mds, old_mds;
326274 client::vfs::v2::SendRequestOption rpc_option;
327275 rpc_option.timeout_ms = FLAGS_mds_rpc_timeout_ms;
@@ -354,21 +302,5 @@ Status MDSV2Client::SendRequest(const std::string& service_name,
354302 return Status::Internal (" send request fail" );
355303}
356304
357- MDSClientSPtr BuildSharedMDSClient () {
358- if (FLAGS_mds_version == " v2" ) {
359- return std::make_shared<MDSV2Client>(FLAGS_mds_addrs);
360- } else {
361- CHECK (false ) << " Unsupported MDS version: " << FLAGS_mds_version;
362- }
363- }
364-
365- MDSClientUPtr BuildUniqueMDSClient () {
366- if (FLAGS_mds_version == " v2" ) {
367- return std::make_unique<MDSV2Client>(FLAGS_mds_addrs);
368- } else {
369- CHECK (false ) << " Unsupported MDS version: " << FLAGS_mds_version;
370- }
371- }
372-
373305} // namespace cache
374306} // namespace dingofs
0 commit comments