tidb-incubator / tidis

A distributed transactional large-scale NoSQL database powered by TiKV
Apache License 2.0
444 stars 30 forks source link

Questions about the result of performance test #90

Closed han-ian closed 1 year ago

han-ian commented 1 year ago

This is the performace detail I have read, https://github.com/tidb-incubator/tidis/blob/master/docs/performance.md

Yet, I have some questions about the test result.

  1. What is the data structure that described by "read" and "write"? As we all known, for hset and set command the performance should be different a lot. String structure may have a good performance than hash because it need few api to call. For my test result, set command have 2x performance to hset command.
  2. What is the data size ? The test do not clearify the data size that read or write. 1000 bytes and 100bytes data size should have different test result on write command.
  3. What is the resource usage on a given test case? This question may be a little hard to answer. I mean we should know the bottleneck on a given test case.
yongman commented 1 year ago
  1. What is the data structure that described by "read" and "write"?

The read and write in performance doc is for string data type. For other data types, the result may be varies a lot according to the different workload patterns. The string type is the simplest workload to reproduce.

  1. hset and set command the performance should be different a lot.

Yes, other datatypes throughput is lower than string, and the throughput should be tested with your own workload to get a more referable result.

2. What is the data size ?

The request payload is about 100 bytes per write request. And we fill the cluster with 30 million keys before benchmark.

3. What is the resource usage on a given test case?

In the benchmark, in all scenarios, the Tidis and TiKV nodes are in a high level, cpu cost almost 90%.

han-ian commented 1 year ago
  1. What is the data structure that described by "read" and "write"?

The read and write in performance doc is for string data type. For other data types, the result may be varies a lot according to the different workload patterns. The string type is the simplest workload to reproduce.

  1. hset and set command the performance should be different a lot.

Yes, other datatypes throughput is lower than string, and the throughput should be tested with your own workload to get a more referable result.

  1. What is the data size ?

The request payload is about 100 bytes per write request. And we fill the cluster with 30 million keys before benchmark.

  1. What is the resource usage on a given test case?

In the benchmark, in all scenarios, the Tidis and TiKV nodes are in a high level, cpu cost almost 90%.

Got it. Thanks very much for your reply.