Code Monkey home page Code Monkey logo

kvbench's Introduction

KVBench

cloned from tidwall/kvbench

KVBench is a Redis server clone backed by a few different Go databases.

It's intended to be used with the redis-benchmark command to test the performance of various Go databases. It has support for redis pipelining. The redis-benchmark can run as explained here https://github.com/tidwall/kvbench#examples.

This cloned version adds more kv databases and automatic scripts.

Features:

SSD benchmark

The following benchmarks show the throughput of inserting/reading keys (of size 9 bytes) and values (of size 256 bytes).

nofsync

throughputs

badger bbolt bolt leveldb kv buntdb pebble pogreb nutsdb rocksdb btree btree/memory map map/memory
Batch Write 1818000 305000 279000 458000 113000 1109000 484000 1694000 1978000 440000 2322000 OOM 2718000 OOM
del 42068 5830 5602 72084 124984 47913 92244 4264 114012 86168 597002 761315 1289271 3956378
set 39945 17457 17584 119846 11598 40720 77794 66457 113455 81718 137413 652104 137153 551238
get 474943 691812 706825 416832 32969 1857733 321527 5063794 630274 295142 3034517 2035675 7752284 6459314
setmixed 12353 10525 9520 21094 5133 9590 58853 50422 28863 57994 55785 86495 85366 134747
getmixed 171771 448769 469127 183170 20539 49857 168025 210983 137648 172137 232248 366470 377661 697788

time (latency)

badger bbolt bolt leveldb kv buntdb pebble pogreb nutsdb rocksdb btree btree/memory map map/memory
getmixed 1455 557 532 1364 12171 5014 1487 1184 1816 1452 1076 682 661 358
set 6258 14320 14216 2086 21554 6139 3213 3761 2203 3059 1819 383 1822 453
get 526 361 353 599 7582 134 777 49 396 847 82 122 32 38
setmixed 80945 95010 105037 47405 194793 104264 16991 19832 34646 17243 17925 11561 11714 7421
del 5942 42880 44625 3468 2000 5217 2710 58624 2192 2901 418 328 193 63

fsync

throughputs

badger bbolt bolt leveldb kv buntdb pebble pogreb nutsdb rocksdb btree btree/memory map map/memory
Batch Write 1981000 332000 308000 122000 206000 759000 324000 16000 26000 392000 1350000 OOM 1510000 OOM
get 511262 740201 749409 1399345 33044 2419811 312589 7256537 1762448 279579 4073015 1931155 12368046 5064254
setmixed 9345 52 51 83 5151 97 2648 49 97 2809 94 74675 93 124593
getmixed 41121 712940 714763 725069 20606 1756 274968 557 435 272844 1002 318337 1963 638967
del 19595 49 49 84619 12190 97 29386 961261 98 32109 49337 805323 94 3419262
set 18278 48 48 236 12850 97 29000 52 97 28579 93 535504 94 467439

time (latency)

badger bbolt bolt leveldb kv buntdb pebble pogreb nutsdb rocksdb btree btree/memory map map/memory
setmixed 106999 19187738 19329929 12000867 194129 10261633 377610 20268643 10255662 355960 10620359 13391 10652140 8026
get 488 337 333 178 7565 103 799 34 141 894 61 129 20 49
getmixed 6079 350 349 344 12132 142337 909 448760 574240 916 249360 785 127325 391
del 12758 5078760 5095016 2954 20508 2577078 8507 260 2550875 7785 5067 310 2654177 73
set 13676 5152682 5167592 1056019 19454 2571839 8620 4736548 2558664 8747 2683904 466 2649372 534

kvbench's People

Contributors

jarifibrahim avatar mathematrix avatar ricochet1k avatar smallnest avatar tidwall avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kvbench's Issues

Add benchmarks for batch write?

Hi, Thank you for creating these benchmarks. They are very helpful.
I work on badger and I realized your benchmark code uses transaction.Set with single entries in the testSet. Do you think it would be useful to compare the batch writer as well? Badger has a batch writer which is much faster than single entry writes.

Single entry writes are the slowest way of writing data to badger. I can help with writing the benchmark for write batch.

Thank you once again for the benchmarks :)

Add benchmark for Range search

I would be very interested in looking at a benchmark for range searches over keys. Some of this kv stores are optimized for either reads/writes, sequential vs random. But range searches will tell an entirely different story.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.