Skip to content

Commit cbd0244

Browse files
authored
Merge pull request #889 from Migorithm/feat/client-response
feat: extended use of bincode for serde
2 parents f556595 + 13e4f0e commit cbd0244

20 files changed

Lines changed: 322 additions & 264 deletions

File tree

duva-client/src/broker/mod.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use duva::prelude::tokio::sync::mpsc::Receiver;
1414
use duva::prelude::tokio::sync::mpsc::Sender;
1515
use duva::prelude::uuid::Uuid;
1616
use duva::prelude::{
17-
ConnectionRequest, ConnectionRequests, ConnectionResponse, ConnectionResponses,
17+
BinBytes, ConnectionRequest, ConnectionRequests, ConnectionResponse, ConnectionResponses,
1818
};
1919
use duva::prelude::{PeerIdentifier, tokio};
2020
use duva::prelude::{Topology, anyhow};
@@ -97,9 +97,9 @@ impl Broker {
9797
context.expected_result_cnt = result_count;
9898
queue.push(context);
9999
} else {
100-
context.callback(QueryIO::Err(
101-
"Failed to route command. Try again after ttl time".into(),
102-
));
100+
context.callback(QueryIO::Err(BinBytes::new(
101+
"Failed to route command. Try again after ttl time",
102+
)));
103103
};
104104
},
105105
}

duva-client/src/command.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use duva::domains::caches::cache_manager::IndexedValueCodec;
22
use duva::domains::replications::LogEntry;
3+
use duva::prelude::BinBytes;
34
use duva::prelude::anyhow::{self, Context};
45
use duva::presentation::clients::request::NonMutatingAction;
56
use duva::{
@@ -30,7 +31,7 @@ impl CommandQueue {
3031
}
3132

3233
let result =
33-
context.get_result().unwrap_or_else(|err| QueryIO::Err(err.to_string().into()));
34+
context.get_result().unwrap_or_else(|err| QueryIO::Err(BinBytes::new(err.to_string())));
3435
context.callback(result);
3536
}
3637
}
@@ -93,7 +94,7 @@ impl InputContext {
9394

9495
count += num;
9596
}
96-
Ok(QueryIO::SimpleString(count.to_string().into()))
97+
Ok(QueryIO::SimpleString(BinBytes::new(count.to_string())))
9798
},
9899
ClientAction::Mutating(LogEntry::Delete { keys: _ }) => {
99100
let mut count = 0;
@@ -106,7 +107,7 @@ impl InputContext {
106107

107108
count += decoded_value;
108109
}
109-
Ok(QueryIO::SimpleString(count.to_string().into()))
110+
Ok(QueryIO::SimpleString(BinBytes::new(count.to_string())))
110111
},
111112
_ => {
112113
if res.len() != 1 {

duva-client/src/controller.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,14 @@ fn render_return(kind: ClientAction, query_io: QueryIO) -> Response {
4646
| ClusterInfo,
4747
) => match query_io {
4848
QueryIO::Null => Response::Null,
49-
QueryIO::SimpleString(value) => Response::String(value),
50-
QueryIO::BulkString(value) => Response::String(value),
51-
QueryIO::Err(value) => Response::Error(value),
49+
QueryIO::SimpleString(value) => Response::String(value.into()),
50+
QueryIO::BulkString(value) => Response::String(value.into()),
51+
QueryIO::Err(value) => Response::Error(value.into()),
5252
_err => Response::FormatError,
5353
},
5454
Mutating(LogEntry::Delete { .. }) | NonMutating(Exists { .. } | LLen { .. }) => {
5555
if let QueryIO::Err(value) = query_io {
56-
return Response::Error(value);
56+
return Response::Error(value.into());
5757
}
5858

5959
let QueryIO::SimpleString(value) = query_io else {
@@ -79,7 +79,7 @@ fn render_return(kind: ClientAction, query_io: QueryIO) -> Response {
7979
let s: Option<i64> = IndexedValueCodec::decode_value(s);
8080
Response::Integer(s.unwrap().to_string().into())
8181
},
82-
QueryIO::Err(value) => Response::Error(value),
82+
QueryIO::Err(value) => Response::Error(value.into()),
8383

8484
_ => Response::FormatError,
8585
},
@@ -92,13 +92,13 @@ fn render_return(kind: ClientAction, query_io: QueryIO) -> Response {
9292
Mutating(LogEntry::Set { .. } | LogEntry::LTrim { .. } | LogEntry::LSet { .. }) => {
9393
match query_io {
9494
QueryIO::SimpleString(_) => Response::String("OK".into()),
95-
QueryIO::Err(value) => Response::Error(value),
95+
QueryIO::Err(value) => Response::Error(value.into()),
9696
_ => Response::FormatError,
9797
}
9898
},
9999
NonMutating(ClusterMeet { .. } | ClusterReshard) => match query_io {
100100
QueryIO::Null => Response::String("OK".into()),
101-
QueryIO::Err(value) => Response::Error(value),
101+
QueryIO::Err(value) => Response::Error(value.into()),
102102
_ => Response::FormatError,
103103
},
104104
Mutating(LogEntry::Append { .. }) => match query_io {
@@ -107,7 +107,7 @@ fn render_return(kind: ClientAction, query_io: QueryIO) -> Response {
107107
let s: Option<i64> = IndexedValueCodec::decode_value(s);
108108
Response::String(s.unwrap().to_string().into())
109109
},
110-
QueryIO::Err(value) => Response::Error(value),
110+
QueryIO::Err(value) => Response::Error(value.into()),
111111
_ => Response::FormatError,
112112
},
113113
Mutating(LogEntry::LPop { .. } | LogEntry::RPop { .. })
@@ -137,11 +137,11 @@ fn render_return(kind: ClientAction, query_io: QueryIO) -> Response {
137137
let QueryIO::BulkString(value) = item else {
138138
return Response::FormatError;
139139
};
140-
nodes.push(Response::String(value));
140+
nodes.push(Response::String(value.into()));
141141
}
142142
Response::Array(nodes)
143143
},
144-
QueryIO::Err(value) => Response::Error(value),
144+
QueryIO::Err(value) => Response::Error(value.into()),
145145
_ => Response::FormatError,
146146
},
147147

duva/Cargo.toml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,3 @@ lzf = { version = "1.0.0" }
3838
[dev-dependencies]
3939
tempfile = "3.19.1"
4040
criterion = "0.7.0"
41-
42-
[[bench]]
43-
name = "benchmark"
44-
harness = false

duva/benches/benchmark.rs

Lines changed: 0 additions & 13 deletions
This file was deleted.

duva/benches/benchmark_query.rs

Lines changed: 0 additions & 74 deletions
This file was deleted.

0 commit comments

Comments
 (0)