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!
News
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:
- Extract tidb_query into different workspaces by team SSebo
- Support auto flush metrics by team BABAIsWatchingYou
- Add WAL write duration metric by team hawking&chacha
- Output slow logs to a dedicated file by team .*
- Support slow log in log searching by team .*
Note:
- The team name of .* is originally with a star sign.
Releases
This month our team made 5 TiKV releases!
You can review the changelogs here:
- 3.1.0-rc
- 4.0.0-rc
- 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
- Compatibility changes
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
- @busyJay supported replication mode control in #7586.
- @yiwu-arbug fixed wrong key being read on ingested file for Raw KV in #7420.
- @overvenus supported AWS KMS backend for encryption in #7173.
- @wangrzneu supported rate control for removing peer in #2226.
- @innerr fixed the correctness issue of coprocessor cache in #7095.
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.