Giter VIP home page Giter VIP logo

rust-driver-benchmarks's Introduction

Rust driver benchmarks

Benchmarks for Scylla Rust Driver

Benchmarks

  • Basic - performs basic operations (inserts/selects), max concurrency active requests at once

Disclaimer:
This chart is pretty old. A lot has changed since it was created, including driver names used here. The two drivers with changed names were:

Drivers:

How to run a benchmark

Each benchmark is inside a Docker image
Build the image and run the benchmark
If you're using docker executing the commands might require sudo or being in the docker group.

For example to run the basic benchmark using scylla-rust-driver

  • Start a local scylla instance: ./scylla.sh
  • Enter benchmark directory: cd benchmarks/basic/scylla-rust-driver
  • Build the benchmark: ./build.sh
  • Wait until scylla is ready (Should say something like listening on 172.17.0.3)
  • Run the benchmark: ./run.sh

How to generate a result chart

Chart generator is also in a docker image for convenience

  • Enter the generate_chart directory
  • Build the docker image: ./build.sh
  • Enter benchmark results in config.py
  • Generate the chart: ./generate.sh
  • Generated chart will be in chart.png

rust-driver-benchmarks's People

Contributors

cvybhu avatar havaker avatar sharonovd avatar

Stargazers

 avatar

Watchers

 avatar

rust-driver-benchmarks's Issues

Run benchmark with RF=3 CL=QUORUM

Currently benchmark has RF=1 to maximize performance

We could additionally test RF=3 CL=QUORUM which matches real life better

First discussed in #6

GOGC in gocql benchmark

gocql readme recommends increasing GOGC. Should the benchmark use a higher value than the default?

For example with GOGC=100 (the default) I get:

Benchmark configuration: main.Config{nodeAddresses:[]string{"127.0.0.1:9042"}, workload:2, tasks:1000000, concurrency:1024, batchSize:256, dontPrepare:false}
Starting the benchmark
Finished
Benchmark time: 8927 ms

and with GOGC=500:

Benchmark configuration: main.Config{nodeAddresses:[]string{"127.0.0.1:9042"}, workload:2, tasks:1000000, concurrency:1024, batchSize:256, dontPrepare:false}
Starting the benchmark
Finished
Benchmark time: 7213 ms

Different CLs used with different drivers

I noticed that the default CL setting in gocql is QUORUM while in scylla-rust-driver it's ONE.
Which means that you benchmarked gocql with QUORUM and scylla-rust-driver with ONE (there is no explicit changing of CL in the benchmark code).
Which means that the benchmark results are unfair.

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.