[][src]Struct agilulf_driver::MultiAgilulfClient

pub struct MultiAgilulfClient { /* fields omitted */ }

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:

  1. Any request related before SCAN should have finished, then SCAN, then following requests.

  2. Allocate all requests related with SCAN into 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]

pub fn allocate_task(&self, command: &Command) -> usize[src]

pub async fn put<'_>(
    &'_ self,
    key: Slice,
    value: Slice
) -> Result<Reply, ClientError>
[src]

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]

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]

Trait Implementations

impl Clone for 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]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

impl<T> Erased for T