Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Need the configuration file of HSE #23

Open
ZhangJiaQiao opened this issue Feb 23, 2023 · 3 comments
Open

Need the configuration file of HSE #23

ZhangJiaQiao opened this issue Feb 23, 2023 · 3 comments

Comments

@ZhangJiaQiao
Copy link

Description

I want to run the YCSB test on HSE and compare it with RocksDB. In order to get the best performance of both engines for a fair comparision, I want to know the configuration of HSE and RocksDB for this YCSB test of Micron, or other way, some configuration advice.

@ZhangJiaQiao
Copy link
Author

Using the default configuration of HSE and RocksDB, I can such YCSB test results as listed below.

RocksDB:

./bin/ycsb load rocksdb -P workloads/my_workload -p rocksdb.dir=./ycsb_data/ycsb-rocksdb-data -threads 30

[OVERALL], RunTime(ms), 1926
[OVERALL], Throughput(ops/sec), 51921.07995846314
[TOTAL_GCS_G1_Young_Generation], Count, 2
[TOTAL_GC_TIME_G1_Young_Generation], Time(ms), 16
[TOTAL_GC_TIME_%_G1_Young_Generation], Time(%), 0.8307372793354102
[TOTAL_GCS_G1_Old_Generation], Count, 0
[TOTAL_GC_TIME_G1_Old_Generation], Time(ms), 0
[TOTAL_GC_TIME_%_G1_Old_Generation], Time(%), 0.0
[TOTAL_GCs], Count, 2
[TOTAL_GC_TIME], Time(ms), 16
[TOTAL_GC_TIME_%], Time(%), 0.8307372793354102
[CLEANUP], Operations, 30
[CLEANUP], AverageLatency(us), 6920.9
[CLEANUP], MinLatency(us), 3
[CLEANUP], MaxLatency(us), 207487
[CLEANUP], 95thPercentileLatency(us), 29
[CLEANUP], 99thPercentileLatency(us), 207487
[INSERT], Operations, 100000
[INSERT], AverageLatency(us), 371.62749
[INSERT], MinLatency(us), 10
[INSERT], MaxLatency(us), 25295
[INSERT], 95thPercentileLatency(us), 626
[INSERT], 99thPercentileLatency(us), 1522
[INSERT], Return=OK, 100000

HSE:

LD_LIBRARY_PATH=/opt/hse/lib/x86_64-linux-gnu ./bin/ycsb load hse -P workloads/my_workload -p hse.kvdb.home=./ycsb_data/ycsb-hse-data -threads 30

[OVERALL], RunTime(ms), 7874
[OVERALL], Throughput(ops/sec), 12700.0254000508
[TOTAL_GCS_G1_Young_Generation], Count, 2
[TOTAL_GC_TIME_G1_Young_Generation], Time(ms), 20
[TOTAL_GC_TIME_%_G1_Young_Generation], Time(%), 0.25400050800101603
[TOTAL_GCS_G1_Old_Generation], Count, 0
[TOTAL_GC_TIME_G1_Old_Generation], Time(ms), 0
[TOTAL_GC_TIME_%_G1_Old_Generation], Time(%), 0.0
[TOTAL_GCs], Count, 2
[TOTAL_GC_TIME], Time(ms), 20
[TOTAL_GC_TIME_%], Time(%), 0.25400050800101603
[CLEANUP], Operations, 30
[CLEANUP], AverageLatency(us), 56171.6
[CLEANUP], MinLatency(us), 3
[CLEANUP], MaxLatency(us), 1685503
[CLEANUP], 95thPercentileLatency(us), 21
[CLEANUP], 99thPercentileLatency(us), 1685503
[INSERT], Operations, 100000
[INSERT], AverageLatency(us), 354.14383
[INSERT], MinLatency(us), 5
[INSERT], MaxLatency(us), 19599
[INSERT], 95thPercentileLatency(us), 1029
[INSERT], 99thPercentileLatency(us), 1108
[INSERT], Return=OK, 100000

The result I get shows that HSE get a worse performance than RocksDB, which does match what the Micron report declare.

@alexttx
Copy link

alexttx commented Feb 23, 2023

I suspect you're seeing the effect of HSE's slow start mechanism. At startup HSE throttles the input rates until it learns the capabilities of the underlying storage. This means that short benchmarks will not see HSE's full rate. See initial throttle setting for more information.

Also Note that many configuration parameters you see in source code are not meant to be changed except for debugging and development. We mark those parameters as "experimental". The non-experimental parameters are described here.

My suggestions are:

  • run a longer benchmark. you should see the rate increase after a few minutes.
  • set the initial throttle setting to "light" as described in the above link
  • experiment with the thread count. we often run YCSB thread count between 1 and 1.5 times the number reported by nproc on systems with 128G of DRAM or more.

@smoyerx
Copy link

smoyerx commented Feb 24, 2023

I also recommend that you review the benchmarking tips in the documentation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants