Hi, you have a tidb easy to use challenge “scoring guide” please check


The usability challenge of the second season of tidb challenge has been started for a week. Due to the strong participation of the old players who participated in the performance challenge of the last season, the competition in this season’s challenge is particularly fierce. In a short week, three teams have gained thousands of points!

Hi, you have a tidb easy to use challenge

The complete points ranking list can be viewed on the official website of the activity.

Brief introduction to the war situation:

  • Babaiswatchingyou team scored 2530 points by improving the ease of use of thread local metrics in rust Prometheus.
  • Niedhui team got 1680 points by adding TLS support for tidb dashboard.
  • Hawking & Chacha team scored 1300 points by increasing monitoring for rocksdb wal write latency.
  • .*The team obtained 950 points by using separate log files to store tikv slow query logs.

Envy is better than action! We also briefly share some scoring skills here, hoping to help you quickly catch up with the top competitors.

Scoring skills 1: the top three users in the voting results need high bonus points!

Hi, you have a tidb easy to use challenge

In order to encourage you to choose tasks with higher user voice, the tasks corresponding to the top three users’ voting demands in this challenge will be increased by 10000, 8000 and 6000 points respectively on the basis of the original points. For example, the number three requirement: record access statistics of databases, tables and indexes. The original score of this requirement is 1294 (low points mean low difficulty), plus an additional 6000, which means that a total of 1294 + 6000 = 7294 points can be obtained to complete this low difficulty task, which is very cost-effective!

Scoring skills 2: Chaos mesh contributing tutorial can help you to get points quickly

Chaos mesh is a cloud native chaos testing platform, and tidb chaos testing tool that we often hear about is it. By the way, there will be a big surprise in the follow-up of chaos mesh project, Zhen potential stock.

This small chaos mesh contributing tutorial includes GitHub collaboration foundation, building the chaos mesh development environment and how to develop a very simple new function in chaos mesh. It’s not much. I can read it soon. If you haven’t participated in an open source project before, you can watch it; if you have experience in open source collaboration but have not participated in the development of chaos mesh, you can also watch it! After reading the pamphlet, you can easily do tasks and get points in the chaos mesh challenge Title Collection!

Scoring technique 3: if you think the medium topic is too difficult, brush the easy topic in multiple repos at the same time

Compared with the first season, in addition to tidb, tikv and PD, more code warehouses released tasks in this usability challenge:

  1. chaos-mesh
  2. Data Migration
  3. Backup & Restore
  4. client-rust
  5. TiDB Dashboard
  6. cherry-bot
  7. TiDB Operator
  8. TiUP

Including tidb, tikv, PD and so on, a total of more than 10 code warehouses participated. According to the rules of the competition, players in each warehouse can brush the task of easy difficulty and get up to 200 points. So 10 code warehouse is 2000 points, a little makes a lot, the harvest is very considerable Oh! After more practice, it will be easier to challenge the task of medium difficulty.

Scoring skill 4: breakthrough from some simple medium tasks


Hint: This is a requirement from users. SQL fingerprinting can greatly simplify the length of creating SQL binding statements and improve the user experience. The implementation is not complicated. After modifying the parser file support syntax, you can modify the tidb and create SQL binding related codes.


  • Unified management of tikv log and rocksdb log: put rocksdb log in the same directory as tikv log, and rotate in the same way to facilitate operation and search.
  • Monitor the memory usage of tikv module: monitor the memory usage of several core modules to facilitate the troubleshooting of tikv memory problems.


  • PD API swagger support: make the API conform to swagger standard and generate online API documents, which is easy to implement. The main work is to comb the API, which is expected to be completed in about 3 days.
  • Restrict the specified small tables not to be merged: This is a requirement from the community, and some regions need not be merged. After completing this function, players can know the complete region merge scheduling process, which is a very meaningful function.

TiDB Operator:

  • Support operator CRD Java SDK: since tidb operator is written by golang, its CRD file only has golang client. This task will create java client for operator CRD, which is of great significance for extending product ecology.
  • Optimize the error reporting information of operator controller: at present, the error reporting information of operator controller can not help us accurately locate the specific error location. This task will help us optimize the error information content of operator controller and improve the user experience.

Chaos Mesh:

  • Support pause chaos experiment: add a pause field to the definition of each chaos object. If it is set to true, the controllers will cancel the injected errors and skip the normal execution logic every time they call the corresponding reconcile logic.
  • Expand networkchaos supports limiting network bandwidth: this task is to expand the existing networkchaos, support limiting the network bandwidth of specific pods, and use the netlink toolkit to support, which can solve the specific implementation problem of limiting network bandwidth.

TiDB Dashboard:

  • The log search page shows the size of the log: both the front and back ends need to be modified, but they are not changed much. It is very suitable for the full stack engineer who can write go.
  • Generating flame diagram SVG does not depend on pprof command line: both dashboard and pprof are open source golang projects, so it is not difficult to integrate the code.
  • Try tidb request again when tidb node is not online: the core is to write a simple TCP port forwarding + health check with go.

Data Migration:

  • It can take a day to complete the task of depending on the etdb database.
  • Fix the specified mode of remove meta: modify the configuration item to command parameter, which is cost-effective.

Cherry Bot:

  • The configuration of each repo is divided into different files: make a small change to the config component.
  • Multi branch parallel auto merge: at present, many open source projects of pingcap (such as tidb, tikv, etc.) are using this function to automatically merge the PR approved by reviewers. This task will improve this function so that it can merge PR on multiple branches at the same time. To complete it, we need to modify the main logic of auto merge, but because the code module is relatively independent, it is suitable for learning bot.


  • Add integration tests to playground: just add a unit test case, which is very helpful to understand the code logic.
  • Support for tidb / tikv / PD in playground: supporting this function can greatly improve the usability of tiup. To complete this task, you need to add some flags and use the default configuration when no configuration is specified.
  • Integrating grafana into playground components: after supporting this function, the clusters deployed with playground will be monitored by grafana! When implementing, you can refer to the integration of Prometheus.


  • Support cleaning specific key lock: when the transaction conflict is serious, only clearing the lock of specific key for small transaction can greatly reduce the burden of tikv server.
  • Add region cache for PD client: using the region information of local cache can greatly improve the performance and reduce the burden of PD server. There are mature implementations in tidb. Here, we only need to migrate the implementation of tidb to rust.

I don’t know if you have finished the above “scoring skills”, are you ready to fight for points?

Please see this article for the registration method and competition details. At the same time, you are welcome to join tidb community slack workspace. If you encounter any problems during the competition, you can contact us directly through the tidb challenge program channel

Hi, you have a tidb easy to use challenge

Recommended Today

Implementation example of go operation etcd

etcdIt is an open-source, distributed key value pair data storage system, which provides shared configuration, service registration and discovery. This paper mainly introduces the installation and use of etcd. Etcdetcd introduction etcdIt is an open source and highly available distributed key value storage system developed with go language, which can be used to configure sharing […]