-
Notifications
You must be signed in to change notification settings - Fork 110
forky: benchmark badger vs forky #2143
base: fcds-teenage-mutants
Are you sure you want to change the base?
Conversation
Can you send instructions how you managed to run benchmarks that you referenced in the description on fcds-tenage-mutants branch? These benchmarks are not existing there, and a lot of testing code is changed in this pr. I think that it is important for a reviewer to be able to reproduce the results you presented. |
Could you make this code buildable? It fails with the following errors when running
|
cd to storage/fcds/leveldb directory For every test the benchmark is there for 10,000, 100k and 1Million. I have commented 10K and 100k tests for brevity. If you want enable them too and run them to see the performance for smaller sets. |
You have to do a go get -u github.com/dgraph-io/badger for getting all the dependency packages of badger in to your vendor to get rid of this errors
Fixed it |
@janos This PR is just for benchmarking and not for merging. So please ignore the conflicts. |
I am sorry, but this PR is not reviewable and benchmarks are not reproducible without your direct assistance. If now can say that I trust your measurements even if I cannot reproduce them. |
It is also unclear to me how the benchmarks were done. It's very difficult to compare head to head as usually is with benchmarks (check-out different branches and run the same benchmarks in the same directory). Also, from the benchmarks that I ran on the branch I saw that the actual benchmark analysis of operation per timeframe is not used but some other CLI printouts say how long it took to insert/read/do some operation. I'm guessing you just divided that by the number of chunks that you were measuring within that run (this was also evident since the results you've pasted were not in the golang benchmark tool output format). Having the benchmark tool measure how long per operation has more significance in my opinion. |
oops.. My mistake. I pushed the benchmarks in fcds-teenage-mutants branch now. Please check.
Yes, You don't need any of the leveldb stuff you used to store meta. Badger stores both meta and chunks in different places similar to your forky implementation. Thats why you find only badger related stuff and i have removed everything related to forky. The benchmarks (like in fcds-teenage-mutants) is there in fcds-test.go file. This benchmark file is exactly same to the one in fcds-teenage-mutants branch benchmark file. |
Thanks @jmozah. It would be very nice that all required code and instructions have been shared so that reviewers do not waste time figuring out how and why something is measured or not working. |
I am not sure i understand this. I checked out 2 branches ran the same benchmarks on them.
The benchmarks contains other prepping items like adding base 1 Million items before starting the benchmark. Since i wanted to avoid skewing of the benchmarks by those preps, i calculated the time myself. BTW, The actual benchmark tool also outputs the time per operation and you can check that too. |
Having looked briefly at the benchmarks - the measurement now includes the setup stage, this should be mitigated by stopping and starting the benchmark timer again after the setup stage. |
how to benchmark: compare to latest forky on measurements were done on a general purpose digital ocean droplet with 32gb ram and 100gb ssd that demonstrated a steady throughput of 1 GB per second when executing
|
This PR is a replacement of fcds most latest branch with badger to do benchmarkings.
Below is the benchmarking for writing, reading, deleting 1 million chunks in seconds