client-rust icon indicating copy to clipboard operation
client-rust copied to clipboard

add ttl for raw client

Open dmeijboom opened this issue 3 years ago • 5 comments

Based on #324 with the following additions:

  • Rebased on tikv master
  • Changed (KvPair, u64) to KvPairWithTTL

dmeijboom avatar Oct 27 '22 09:10 dmeijboom

Seems like the clippy and integration test is failing.

Clippy makes sense:

Error: Unable to create clippy annotations! Reason: HttpError: Resource not accessible by integration
Warning: It seems that this Action is executed from the forked repository.
Warning: GitHub Actions are not allowed to create Check annotations, when executed for a forked repos. See https://github.com/actions-rs/clippy-check/issues/2 for details.

But for the integration tests I'll look into that

dmeijboom avatar Oct 28 '22 12:10 dmeijboom

batch_put() api would give the following error:

gRPC error: RpcFailure: 13-INTERNAL Failed to deserialize response message: Codec(WireError(UnexpectedWireType(WireTypeLengthDelimited)))

tikv server: v6.1.3

I also tested tikv v4.0. It does not throw this error.

Example:

use tikv_client::{KvPair, RawClient};

#[tokio::main]
async fn main() -> Result<(), ()> {
    let client = RawClient::new(vec!["127.0.0.1:12379"], None).await.unwrap();
    let kvpair1: KvPair = KvPair("PD".to_owned().into(), "Go".to_owned().into());
    let kvpair2: KvPair = KvPair("TiKV".to_owned().into(), "Rust".to_owned().into());
    let pairs: Vec<KvPair> = vec![kvpair1, kvpair2];

    match client.batch_put(pairs).await {
        Ok(_) => println!("pairs are inserted"),
        Err(e) => println!("error: {}", e),
    };

    Ok(())
}

Output:

Dec 12 10:53:08.427 INFO connect to tikv endpoint: "127.0.0.1:20160"
error: gRPC error: RpcFailure: 13-INTERNAL Failed to deserialize response message: Codec(WireError(UnexpectedWireType(WireTypeLengthDelimited)))

ycytt-rs avatar Dec 12 '22 12:12 ycytt-rs

Indeed, that was also my observation. I'm not sure what's going on and I don't have a lot of time to work on this. I'll try to get to the bottom of this in the next couple of days though. If anyone has any clues, please share ;)

dmeijboom avatar Dec 15 '22 10:12 dmeijboom

just a wild guess. It may have something to do with the pb files. Let me also cross check the go client code to see if there is any finding.

ycytt-rs avatar Dec 15 '22 10:12 ycytt-rs

Apologies for the delayed response. We have transitioned from grpc-cpp to tonic (https://github.com/tikv/client-rust/pull/399), which should have resolved the issue in this PR. Regrettably, I do not have permission to merge this PR, so I will proceed with merging the previous one at https://github.com/tikv/client-rust/pull/324. My apologies for any inconvenience caused.

andylokandy avatar Jul 10 '23 08:07 andylokandy