Skip to content

recoilme/pogreb-bench

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 

Repository files navigation

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

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

Currently it supports:

  • pogreb Embedded key-value store for read-heavy workloads written in Go
  • goleveldb LevelDB key/value database in Go.
  • bolt An embedded key/value database for Go.
  • badgerdb Fast key-value DB in Go
  • slowpoke Low-level key/value store in pure Go
  • pudge Fast and simple key/value store written using Go's standard library

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

pogreb goleveldb bolt badgerdb pudge slowpoke pudge(mem)
1M (Put Get), seconds 187 38 126 34 23 23 2
1M Put, ops/sec 5336 34743 8054 33539 47298 46789 439581
1M Get, ops/sec 1782423 98406 499871 220597 499172 445783 1652069
FileSize,Mb 568 357 552 487 358 358 358

Test 2

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

pogreb goleveldb bolt badgerdb pudge slowpoke pudge(mem)
2M (Put Get), seconds 512 59 199 89 62 56 5
2M Put, ops/sec 3922 69029 10344 27368 58135 59590 553112
2M Get, ops/sec 947348 64561 329248 125174 70613 86120 1014628
FileSize,Mb 1010 296 456 516 305 305 305

Test 3

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

goleveldb badgerdb pudge
10M (Put Get), seconds 216 190 253
10M Put, ops/sec 95497 70840 42116
10M Get, ops/sec 89390 202284 617683
FileSize,Mb 608 1870 686

Test 4

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

goleveldb badgerdb pudge
10M (Put Get), seconds 165 120 243
10M Put, ops/sec 122933 135709 43843
10M Get, ops/sec 118722 214981 666067
FileSize,Mb 312 1370 381

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

bbolt pudge
2M (Put Get), seconds 186 45
2M Put, ops/sec 10950 46731
2M Get, ops/sec 539879 761240
FileSize,Mb 120 76

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

bbolt pudge
5M (Put Get), seconds 515 139
5M Put, ops/sec 9891 39402
5M Get, ops/sec 509562 394072
FileSize,Mb 616 419

About

Key-value store benchmarking tool

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%