Home

Awesome

Golang key/value db-bench (pogreb-bench)

pogreb-bench is a key-value store benchmarking tool.

Currently it supports:

Some tests, MacBook Pro (Retina, 13-inch, Early 2015)

Test 1

Number of keys: 1000000 Minimum key size: 16, maximum key size: 64 Minimum value size: 128, maximum value size: 512 Concurrency: 2

pogrebgoleveldbboltbadgerdbpudgeslowpokepudge(mem)
1M (Put+Get), seconds187381263423232
1M Put, ops/sec5336347438054335394729846789439581
1M Get, ops/sec1782423984064998712205974991724457831652069
FileSize,Mb568357552487358358358

Test 2

Number of keys: 2000000 Key size: 16 Value size: 128 Concurrency: 1

pogrebgoleveldbboltbadgerdbpudgeslowpokepudge(mem)
2M (Put+Get), seconds512591998962565
2M Put, ops/sec39226902910344273685813559590553112
2M Get, ops/sec9473486456132924812517470613861201014628
FileSize,Mb1010296456516305305305

Test 3

Number of keys: 10000000 Key size: 8 Value size: 16 Concurrency: 10

goleveldbbadgerdbpudge
10M (Put+Get), seconds216190253
10M Put, ops/sec954977084042116
10M Get, ops/sec89390202284617683
FileSize,Mb6081870686

Test 4

Number of keys: 10000000 Key size: 8 Value size: 16 Concurrency: 100

goleveldbbadgerdbpudge
10M (Put+Get), seconds165120243
10M Put, ops/sec12293313570943843
10M Get, ops/sec118722214981666067
FileSize,Mb3121370381

Test 5 (switch to bbolt from coreos)

Number of keys: 2000000 Minimum key size: 8, maximum key size: 8 Minimum value size: 16, maximum value size: 16 Concurrency: 100

pogreb-bench -c 100 -d bench -e pudge -n 2000000 -mink 8 -maxk 8 -minv 16 -maxv 16

bboltpudge
2M (Put+Get), seconds18645
2M Put, ops/sec1095046731
2M Get, ops/sec539879761240
FileSize,Mb12076

Test 6 (switch to bbolt from coreos)

Number of keys: 5000000 Minimum key size: 8, maximum key size: 8 Minimum value size: 64, maximum value size: 64 Concurrency: 100

pogreb-bench -c 100 -d bench -e pudge -n 5000000 -mink 8 -maxk 8 -minv 64 -maxv 64

bboltpudge
5M (Put+Get), seconds515139
5M Put, ops/sec989139402
5M Get, ops/sec509562394072
FileSize,Mb616419