-
Notifications
You must be signed in to change notification settings - Fork 268
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
benchmark all dbs #465
benchmark all dbs #465
Conversation
…lder first - run benchmark for all dbs in BenchmarkSmall, BenchmarkMedium and BenchmarkLarge. Note: boltdb is still disabled as its too slow - dont know why
…) and Makefile to test all dbs
I don't think this is really necessary. On chain people are claiming rocks is faster but these benchmarks are proving to be slower. Happy to merge if Robert thinks its worth it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks. I'm OK to merge it - it's good to have more data.
cd ~/ | ||
mkdir go | ||
wget https://go.dev/dl/go1.17.6.linux-amd64.tar.gz | ||
tar -C /usr/local -xzf go1.17.6.linux-amd64.tar.gz |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why not using a repository?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because Ubuntu ships decrepit versions of Go :)
The benchmark shows that rocksdb is the fastest or on the same level and has the least allocations (not counting memdb). |
.....and this is why I'm not a fan of synthetic benchmarks, they can lie. But I'm agreed that having more data would be useful. I'm going to make a new Dockerfile that has all of the databases ready to rock in it, and make sure that this can work in github actions. |
oh we have this already actually. we use it in tm-db and cosmos-sdk. It may just need updating. sorry I read the benchmarks inverted, yes it is way faster. I need to start reading on how to optimise rocks. |
We're working on the rocks optomizations, too, here's some info on how: (and specifically, the link at the end, is what tuan and I are working towards being able to use) https://rocksdb.org/blog/2018/08/01/rocksdb-tuning-advisor.html |
lets fix linting then merge this. |
Update to run benchmarks for all dbs (memdb, goleveldb, rocksdb, badgerdb) except boltdb.
Update script to run the benchmarks with docker quickly. So its ok to run on local or dev machine.
Run the command below to install leveldb and rocksdb from source then run the benchmarks
replace (optional):
baabeetaa
with your repo username andfix-bencharks
with your branch.output: