Skip to content

Commit b5ba4a9

Browse files
authored
Merge pull request #9227 from drmingdrmer/30-fixup
refactor(meta): remove back compatability supporting code
2 parents 228f426 + 56d6b1f commit b5ba4a9

File tree

4 files changed

+24
-67
lines changed

4 files changed

+24
-67
lines changed

src/meta/client/src/grpc_action.rs

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -45,20 +45,6 @@ pub trait RequestFor {
4545
type Reply;
4646
}
4747

48-
// TODO: reduce this and MetaGrpcReadReq into one enum?
49-
// Action wrapper for do_action.
50-
#[derive(serde::Serialize, serde::Deserialize, Clone, Debug, derive_more::From)]
51-
pub enum MetaGrpcWriteReq {
52-
UpsertKV(UpsertKVReq),
53-
}
54-
55-
#[derive(serde::Serialize, serde::Deserialize, Clone, Debug, derive_more::From)]
56-
pub enum MetaGrpcReadReq {
57-
GetKV(GetKVReq),
58-
MGetKV(MGetKVReq),
59-
ListKV(ListKVReq), // since 2022-05-23
60-
}
61-
6248
#[derive(serde::Serialize, serde::Deserialize, Clone, Debug, derive_more::From)]
6349
pub enum MetaGrpcReq {
6450
UpsertKV(UpsertKVReq),
@@ -81,15 +67,6 @@ impl TryInto<MetaGrpcReq> for Request<RaftRequest> {
8167
}
8268
}
8369

84-
impl tonic::IntoRequest<RaftRequest> for MetaGrpcWriteReq {
85-
fn into_request(self) -> Request<RaftRequest> {
86-
let raft_request = RaftRequest {
87-
data: serde_json::to_string(&self).expect("fail to serialize"),
88-
};
89-
tonic::Request::new(raft_request)
90-
}
91-
}
92-
9370
impl TryInto<Request<RaftRequest>> for MetaGrpcReq {
9471
type Error = serde_json::Error;
9572

@@ -103,32 +80,6 @@ impl TryInto<Request<RaftRequest>> for MetaGrpcReq {
10380
}
10481
}
10582

106-
impl TryInto<Request<RaftRequest>> for MetaGrpcWriteReq {
107-
type Error = serde_json::Error;
108-
109-
fn try_into(self) -> Result<Request<RaftRequest>, Self::Error> {
110-
let raft_request = RaftRequest {
111-
data: serde_json::to_string(&self)?,
112-
};
113-
114-
let request = tonic::Request::new(raft_request);
115-
Ok(request)
116-
}
117-
}
118-
119-
impl TryInto<Request<RaftRequest>> for MetaGrpcReadReq {
120-
type Error = serde_json::Error;
121-
122-
fn try_into(self) -> Result<Request<RaftRequest>, Self::Error> {
123-
let get_req = RaftRequest {
124-
data: serde_json::to_string(&self)?,
125-
};
126-
127-
let request = tonic::Request::new(get_req);
128-
Ok(request)
129-
}
130-
}
131-
13283
impl RequestFor for GetKVReq {
13384
type Reply = GetKVReply;
13485
}

src/meta/client/src/grpc_client.rs

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -715,21 +715,22 @@ impl MetaGrpcClient {
715715
let resp =
716716
res.map_err(|status| MetaHandshakeError::new("handshake is refused", &status))?;
717717

718-
// backward compatibility: no version in handshake.
719-
// TODO(xp): remove this when merged.
720-
if resp.protocol_version > 0 {
721-
let min_compatible = to_digit_ver(min_metasrv_ver);
722-
if resp.protocol_version < min_compatible {
723-
let invalid_err = AnyError::error(format!(
724-
"metasrv protocol_version({}) < meta-client min-compatible({})",
725-
from_digit_ver(resp.protocol_version),
726-
min_metasrv_ver,
727-
));
728-
return Err(MetaHandshakeError::new(
729-
"incompatible protocol version",
730-
&invalid_err,
731-
));
732-
}
718+
assert!(
719+
resp.protocol_version > 0,
720+
"talking to a very old databend-meta: upgrade databend-meta to at least 0.8"
721+
);
722+
723+
let min_compatible = to_digit_ver(min_metasrv_ver);
724+
if resp.protocol_version < min_compatible {
725+
let invalid_err = AnyError::error(format!(
726+
"metasrv protocol_version({}) < meta-client min-compatible({})",
727+
from_digit_ver(resp.protocol_version),
728+
min_metasrv_ver,
729+
));
730+
return Err(MetaHandshakeError::new(
731+
"incompatible protocol version",
732+
&invalid_err,
733+
));
733734
}
734735

735736
let token = resp.payload;

src/meta/client/src/lib.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@ mod grpc_client;
1717
mod kv_api_impl;
1818
mod message;
1919

20-
pub use grpc_action::MetaGrpcReadReq;
2120
pub use grpc_action::MetaGrpcReq;
22-
pub use grpc_action::MetaGrpcWriteReq;
2321
pub use grpc_action::RequestFor;
2422
pub use grpc_client::ClientHandle;
2523
pub use grpc_client::MetaGrpcClient;

src/meta/client/tests/it/grpc_server.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ use std::thread::sleep;
1717
use std::time::Duration;
1818

1919
use common_base::base::tokio;
20+
use common_meta_client::to_digit_ver;
21+
use common_meta_client::MIN_METASRV_SEMVER;
2022
use common_meta_types::protobuf::meta_service_server::MetaService;
2123
use common_meta_types::protobuf::meta_service_server::MetaServiceServer;
2224
use common_meta_types::protobuf::ClientInfo;
@@ -51,7 +53,12 @@ impl MetaService for GrpcServiceForTestImpl {
5153
_request: Request<Streaming<common_meta_types::protobuf::HandshakeRequest>>,
5254
) -> Result<Response<Self::HandshakeStream>, Status> {
5355
tokio::time::sleep(Duration::from_secs(2)).await;
54-
let output = futures::stream::once(async { Ok(HandshakeResponse::default()) });
56+
let output = futures::stream::once(async {
57+
Ok(HandshakeResponse {
58+
protocol_version: to_digit_ver(&MIN_METASRV_SEMVER),
59+
payload: vec![],
60+
})
61+
});
5562
Ok(Response::new(Box::pin(output)))
5663
}
5764

0 commit comments

Comments
 (0)