Request a new category for tikv-client

Discussion about clients of TiKV - raw, transactional, and multilingual implementations.

TiKV offers both raw and transactional APIs, which have their multilingual implementations.

This category serves for discussion about clients of TiKV listed above and any other potential client-side topics to TiKV.

Example posts

1 Like

What about renaming it to a more specific one like tikv-client?
I am worrying about future confusion as we clear the way for multiple kv implementation of TiDB.

That sounds good. Updated.

+1

Except for Rust/Java/Python/C++, we also have C and Go clients for TiKV, see the full list here: https://github.com/tikv?q=client&type=&language=&sort=name

Not really. I’d like to wait a bit for adding Go Client when the extraction of Go Client inside TiDB codebase done. And client-c is actually a native C++ client used for TiFlash which is planned to be replaced with client-cpp. @leiysky should have more information on this part and you can see also this roadmap.

@zz-jason client-c is not recommended in production. The write part(i.e. 2PC, async commit) is implemented only on purpose of testing, and has never been used in production at all(TiFlash will never write any data through client-c itself).

We’d like to deprecate client-c and replace it with client-cpp(wrapper of rust-client) in future. The reason for this decision is that the TiKV client client-c is maintained by TiFlash team, which is the fact that doesn’t make sense.

IMO, it’s better to let professionals maintain all TiKV client. We can refer to gRPC’s cross language implementation, that is providing a highly abstract c-core so that community can easily implement gRPC with their language by wrapping instead of developing it from scratch.