[−][src]Struct agilulf_driver::MultiAgilulfClient
A multi-thread client.
A multi-thread client will open several single-thread clients (called knight) and give them an ID. Any request
will be hashed by key and send to corresponding client. As it is a KV server, just keeping operation
order consistent of the same key is enough. Note: SCAN is different, this method will
affect multiple keys. Guard (just like CPU's Memory Guard) is needed for this operation. Some
strategy can be choosed:
-
Any request related before
SCANshould have finished, thenSCAN, then following requests. -
Allocate all requests related with
SCANinto the same knight, then the order is consistent natually
Methods
impl MultiAgilulfClient[src]
pub async fn connect<'_>(
address: &'_ str,
knights_num: usize
) -> Result<MultiAgilulfClient, ClientError>[src]
address: &'_ str,
knights_num: usize
) -> Result<MultiAgilulfClient, ClientError>
pub fn allocate_task(&self, command: &Command) -> usize[src]
pub async fn put<'_>(
&'_ self,
key: Slice,
value: Slice
) -> Result<Reply, ClientError>[src]
&'_ self,
key: Slice,
value: Slice
) -> Result<Reply, ClientError>
pub async fn get<'_>(&'_ self, key: Slice) -> Result<Reply, ClientError>[src]
pub async fn delete<'_>(&'_ self, key: Slice) -> Result<Reply, ClientError>[src]
pub async fn scan<'_>(
&'_ self,
start: Slice,
end: Slice
) -> Result<Reply, ClientError>[src]
&'_ self,
start: Slice,
end: Slice
) -> Result<Reply, ClientError>
pub async fn send<'_>(&'_ self, command: Command) -> Result<Reply, ClientError>[src]
pub async fn send_batch<'_>(
&'_ self,
commands: Vec<Command>
) -> Result<Vec<Reply>, ClientError>[src]
&'_ self,
commands: Vec<Command>
) -> Result<Vec<Reply>, ClientError>
Trait Implementations
impl Clone for MultiAgilulfClient[src]
fn clone(&self) -> MultiAgilulfClient[src]
fn clone_from(&mut self, source: &Self)1.0.0[src]
Performs copy-assignment from source. Read more
Auto Trait Implementations
impl Send for MultiAgilulfClient
impl Unpin for MultiAgilulfClient
impl Sync for MultiAgilulfClient
impl !UnwindSafe for MultiAgilulfClient
impl !RefUnwindSafe for MultiAgilulfClient
Blanket Implementations
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T[src]
fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,