This Month in TiKV - April 2020

TiKV Authors

April 30, 2020

April 1st marked TiKV’s 4th birthday. We are grateful for the support and contribution of the community while focusing on making a better TiKV.

Let’s take a look at what we have achieved in April!


We’re working on another API - VerKV, a multi-versioned KV without transactions, to help TiKV expand application scenarios. It is an API halfway between RawKV and TxnKV. The work plan proposed by @fredchenbj is available here; join us by picking a task you are interested in!

It is halfway through the TiDB Usability Challenge and we are glad to see TiKV related projects are popular. Congratulations to the teams that grabbed scores! Let’s take a look at the top 5 most scored projects in TiKV repo:


  • The team name of .* is originally with a star sign.


This month our team made 5 TiKV releases!

You can review the changelogs here:

  • 3.1.0-rc
    • New features
      • Support backing up data with the Raw KV API in #7051
      • Support the TLS authentication for the status server in #7142
      • Support TLS authentication for the KV server in #7305
    • Bug fixes
  • 4.0.0-rc
    • New features
      • Support the pipelined feature in pessimistic transactions in #6984
      • Support TLS in the HTTP port in #5393
      • Enable the unify-read-pool configuration item in new clusters by default in #7059
    • Bug fixes
  • 3.1.0
    • Bug fixes
  • 3.0.13
    • Bug fixes
  • 4.0.0-rc.1
    • Compatibility changes
      • Disable the Hibernate Region feature by default in #7618
    • New feature
      • Support using the user-owned Key Management Service (KMS) key for the server-side encryption when backing up data to S3 in #7630
      • Enable the load-based split region operation in #7623
      • Support validating common names in #7468
      • Add the file lock check to avoid starting multiple TiKV instances that are bound to the same address in #7447
      • Support AWS KMS in encryption at rest in #7465
    • Bug fixes

Reading materials

@YangKeao wrote Quickly Find Rust Program Bottlenecks Online Using a Go Tool to introduce his experience of using the Go tool pprof to visualize TiKV’s profiling data, which helps analyze Rust program’s performance online.

In Tick or Tock? Keeping Time and Order in Distributed Databases, @siddontang analyzes some existing solutions to time synchronization and why TiKV chooses the timestamp oracle (TSO).

Notable PRs

Notable issues

Helped wanted issues (mentoring available)

@youjiali1995 created issue #7652, requesting to always enable pessimistic transactions.

@BusyJay suggested adding metrics for channels of peer Finite-state machine (FSM) and apply FSM in #7686.

Call for participation

@Connor1996 opened #7615 to discuss how to support change rate_bytes_per_sec dynamically.

New Contributors

We’d like to welcome the following new contributors to TiKV and thank them for their work!

If you’d like to get involved, we’d love to invite you to participate in the TiDB Usability Challenge and you might be interested in starting from some easy tasks at the TiKV project. If you don’t know how to begin, please leave a comment and somebody will help you out. We’re also very keen for people to contribute to documentation, tests, optimizations, benchmarks, refactoring, or other useful things.

This Week in TiDB

For more detailed and comprehensive information about TiDB and TiKV, we have weekly updates. The following cover April.