Skip to content

Instantly share code, notes, and snippets.

@xlab
Last active March 3, 2016 22:34
Show Gist options
  • Save xlab/42932554374902f51162 to your computer and use it in GitHub Desktop.
Save xlab/42932554374902f51162 to your computer and use it in GitHub Desktop.
BoltDB Put Performance Results

Batch size = 400

Keys are sorted.

See the results below.

$ make write-large-hurry
go test -bench PutLarge -benchtime 10s
testing: warning: no tests to run
PASS
BenchmarkPutLarge_BoltDB-4 write_test.go:73: bench put LARGE (8MB), take 1 (n=1)
write_test.go:114: last put took: 71.574136ms
write_test.go:115: last key: 00000000152fdfc07218265
write_test.go:164: depth: 1, branch pg: 0, leaf pg: 1, entries: 1
write_test.go:170: gc: 239.693µs
write_test.go:173: mem: heap 8MB/8MB, alloc total 40MB
write_test.go:70: take 1 (n=1) done in 96.108157ms
write_test.go:73: bench put LARGE (8MB), take 2 (n=100)
write_test.go:114: last put took: 3.649626732s
write_test.go:115: last key: 00000010179ea3dfe4136ab
write_test.go:164: depth: 2, branch pg: 1, leaf pg: 49, entries: 100
write_test.go:170: gc: 24.857668ms
write_test.go:173: mem: heap 8MB/8MB, alloc total 5656MB
write_test.go:70: take 2 (n=100) done in 3.885470383s
write_test.go:73: bench put LARGE (8MB), take 3 (n=500)
write_test.go:114: last put took: 3.445331615s
write_test.go:115: last key: 00000060138e67bff2a60e5
write_test.go:164: depth: 3, branch pg: 5, leaf pg: 249, entries: 500
write_test.go:170: gc: 187.293931ms
write_test.go:173: mem: heap 8MB/8MB, alloc total 38572MB
write_test.go:70: take 3 (n=500) done in 1m1.124349253s
500 122240994 ns/op 68.62 MB/s 69028474 B/op 26 allocs/op
ok github.com/zenhotels/lmdb-go/lmdb/bench_boltdb 65.447s
$ make write-hurry
go test -bench PutSmall -benchtime 10s
testing: warning: no tests to run
PASS
BenchmarkPutSmall_BoltDB-4 write_test.go:60: bench put SMALL (8KB), take 1 (n=1)
write_test.go:114: last put took: 725.025µs
write_test.go:115: last key: 00000000152fdfc07218265
write_test.go:164: depth: 4, branch pg: 635, leaf pg: 32400, entries: 64802
write_test.go:170: gc: 182.5µs
write_test.go:173: mem: heap 8MB/8MB, alloc total 24MB
write_test.go:57: take 1 (n=1) done in 94.463647ms
write_test.go:60: bench put SMALL (8KB), take 2 (n=100)
write_test.go:114: last put took: 4.171294ms
write_test.go:115: last key: 00000010179ea3dfe4136ab
write_test.go:164: depth: 2, branch pg: 1, leaf pg: 49, entries: 100
write_test.go:170: gc: 280.06µs
write_test.go:173: mem: heap 8MB/8MB, alloc total 29MB
write_test.go:57: take 2 (n=100) done in 7.585019ms
write_test.go:60: bench put SMALL (8KB), take 3 (n=10000)
write_test.go:114: last put took: 8.984076ms
write_test.go:115: last key: 0000101010ecd732fac1b32
write_test.go:164: depth: 3, branch pg: 97, leaf pg: 4999, entries: 10000
write_test.go:170: gc: 324.461µs
write_test.go:173: mem: heap 8MB/8MB, alloc total 170MB
write_test.go:57: take 3 (n=10000) done in 447.93669ms
write_test.go:60: bench put SMALL (8KB), take 4 (n=500000)
write_test.go:114: last put took: 8.36624ms
write_test.go:115: last key: 0005101013d76ffb6040ec8
write_test.go:164: depth: 4, branch pg: 4900, leaf pg: 249999, entries: 500000
write_test.go:170: gc: 452.369µs
write_test.go:173: mem: heap 8MB/8MB, alloc total 5597MB
write_test.go:57: take 4 (n=500000) done in 26.337625247s
500000 52674 ns/op 155.52 MB/s 11381 B/op 10 allocs/op
ok github.com/zenhotels/lmdb-go/lmdb/bench_boltdb 26.922s
go test -bench PutLarge -benchtime 20s
testing: warning: no tests to run
PASS
BenchmarkPutLarge_BoltDB-4 write_test.go:73: bench put LARGE (8MB), take 1 (n=1)
write_test.go:114: last put took: 85.95227ms
write_test.go:115: last key: 00000000152fdfc07218265
write_test.go:164: depth: 1, branch pg: 0, leaf pg: 1, entries: 1
write_test.go:170: gc: 259.28µs
write_test.go:173: mem: heap 8MB/8MB, alloc total 40MB
write_test.go:70: take 1 (n=1) done in 117.880097ms
write_test.go:73: bench put LARGE (8MB), take 2 (n=100)
write_test.go:114: last put took: 4.211638136s
write_test.go:115: last key: 00000010179ea3dfe4136ab
write_test.go:164: depth: 2, branch pg: 1, leaf pg: 49, entries: 100
write_test.go:170: gc: 6.027071ms
write_test.go:173: mem: heap 8MB/8MB, alloc total 5656MB
write_test.go:70: take 2 (n=100) done in 4.394202239s
write_test.go:73: bench put LARGE (8MB), take 3 (n=1000)
write_test.go:114: last put took: 9.894854465s
write_test.go:115: last key: 000001101e1ff3733982c8c
write_test.go:164: depth: 3, branch pg: 10, leaf pg: 499, entries: 1000
write_test.go:170: gc: 263.111236ms
write_test.go:173: mem: heap 8MB/8MB, alloc total 53887MB
write_test.go:70: take 3 (n=1000) done in 1m41.968071576s
1000 101966070 ns/op 82.27 MB/s 50573570 B/op 22 allocs/op
ok github.com/zenhotels/lmdb-go/lmdb/bench_boltdb 106.867s
$ make write
go test -bench PutSmall -benchtime 20s
testing: warning: no tests to run
PASS
BenchmarkPutSmall_BoltDB-4 write_test.go:60: bench put SMALL (8KB), take 1 (n=1)
write_test.go:114: last put took: 1.05569ms
write_test.go:115: last key: 00000000152fdfc07218265
write_test.go:164: depth: 1, branch pg: 0, leaf pg: 1, entries: 1
write_test.go:170: gc: 254.492µs
write_test.go:173: mem: heap 8MB/8MB, alloc total 24MB
write_test.go:57: take 1 (n=1) done in 2.463567ms
write_test.go:60: bench put SMALL (8KB), take 2 (n=100)
write_test.go:114: last put took: 4.92653ms
write_test.go:115: last key: 00000010179ea3dfe4136ab
write_test.go:164: depth: 2, branch pg: 1, leaf pg: 49, entries: 100
write_test.go:170: gc: 295.577µs
write_test.go:173: mem: heap 8MB/8MB, alloc total 29MB
write_test.go:57: take 2 (n=100) done in 9.269381ms
write_test.go:60: bench put SMALL (8KB), take 3 (n=10000)
write_test.go:114: last put took: 8.258326ms
write_test.go:115: last key: 0000101010ecd732fac1b32
write_test.go:164: depth: 3, branch pg: 97, leaf pg: 4999, entries: 10000
write_test.go:170: gc: 395.564µs
write_test.go:173: mem: heap 8MB/8MB, alloc total 170MB
write_test.go:57: take 3 (n=10000) done in 415.565603ms
write_test.go:60: bench put SMALL (8KB), take 4 (n=1000000)
write_test.go:114: last put took: 8.907487ms
write_test.go:115: last key: 001010101a4db5511fb13ea
write_test.go:164: depth: 5, branch pg: 9803, leaf pg: 499999, entries: 1000000
write_test.go:170: gc: 554.905µs
write_test.go:173: mem: heap 8MB/8MB, alloc total 11071MB
write_test.go:57: take 4 (n=1000000) done in 1m47.566723911s
1000000 107566 ns/op 76.16 MB/s 11429 B/op 10 allocs/op
ok github.com/zenhotels/lmdb-go/lmdb/bench_boltdb 108.036s
$ make write-large-quick
go test -bench PutLarge -benchtime 5s
testing: warning: no tests to run
PASS
BenchmarkPutLarge_BoltDB-4 write_test.go:73: bench put LARGE (8MB), take 1 (n=1)
write_test.go:114: last put took: 73.994166ms
write_test.go:115: last key: 00000000152fdfc07218265
write_test.go:164: depth: 1, branch pg: 0, leaf pg: 1, entries: 1
write_test.go:170: gc: 330.262µs
write_test.go:173: mem: heap 8MB/8MB, alloc total 40MB
write_test.go:70: take 1 (n=1) done in 104.98645ms
write_test.go:73: bench put LARGE (8MB), take 2 (n=100)
write_test.go:114: last put took: 3.782931064s
write_test.go:115: last key: 00000010179ea3dfe4136ab
write_test.go:164: depth: 2, branch pg: 1, leaf pg: 49, entries: 100
write_test.go:170: gc: 8.134964ms
write_test.go:173: mem: heap 8MB/8MB, alloc total 5656MB
write_test.go:70: take 2 (n=100) done in 4.035603582s
write_test.go:73: bench put LARGE (8MB), take 3 (n=200)
write_test.go:114: last put took: 8.065694229s
write_test.go:115: last key: 000000301136385cdc838f0
write_test.go:164: depth: 2, branch pg: 1, leaf pg: 99, entries: 200
write_test.go:170: gc: 68.47947ms
write_test.go:173: mem: heap 8MB/8MB, alloc total 18474MB
write_test.go:70: take 3 (n=200) done in 8.47293868s
200 42343720 ns/op 198.11 MB/s 67198815 B/op 25 allocs/op
ok github.com/zenhotels/lmdb-go/lmdb/bench_boltdb 12.867s
$ make write-quick
go test -bench PutSmall -benchtime 5s
testing: warning: no tests to run
PASS
BenchmarkPutSmall_BoltDB-4 write_test.go:60: bench put SMALL (8KB), take 1 (n=1)
write_test.go:114: last put took: 1.006791ms
write_test.go:115: last key: 00000000152fdfc07218265
write_test.go:164: depth: 1, branch pg: 0, leaf pg: 1, entries: 1
write_test.go:170: gc: 495.918µs
write_test.go:173: mem: heap 8MB/8MB, alloc total 24MB
write_test.go:57: take 1 (n=1) done in 3.378496ms
write_test.go:60: bench put SMALL (8KB), take 2 (n=100)
write_test.go:114: last put took: 5.147114ms
write_test.go:115: last key: 00000010179ea3dfe4136ab
write_test.go:164: depth: 2, branch pg: 1, leaf pg: 49, entries: 100
write_test.go:170: gc: 444.569µs
write_test.go:173: mem: heap 8MB/8MB, alloc total 29MB
write_test.go:57: take 2 (n=100) done in 8.89194ms
write_test.go:60: bench put SMALL (8KB), take 3 (n=10000)
write_test.go:114: last put took: 9.117569ms
write_test.go:115: last key: 0000101010ecd732fac1b32
write_test.go:164: depth: 3, branch pg: 97, leaf pg: 4999, entries: 10000
write_test.go:170: gc: 491.543µs
write_test.go:173: mem: heap 8MB/8MB, alloc total 170MB
write_test.go:57: take 3 (n=10000) done in 482.388981ms
write_test.go:60: bench put SMALL (8KB), take 4 (n=200000)
write_test.go:114: last put took: 8.039857ms
write_test.go:115: last key: 000210101f61f547c69c809
write_test.go:164: depth: 4, branch pg: 1960, leaf pg: 99999, entries: 200000
write_test.go:170: gc: 424.436µs
write_test.go:173: mem: heap 8MB/8MB, alloc total 2365MB
write_test.go:57: take 4 (n=200000) done in 8.981952443s
200000 44905 ns/op 182.43 MB/s 11503 B/op 10 allocs/op
ok github.com/zenhotels/lmdb-go/lmdb/bench_boltdb 9.509s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment