Code Monkey home page Code Monkey logo

neobench's Introduction

neobench

Scriptable Neo4j benchmarks. Neobench helps you create and run artificial load to tune your Neo4j deployments.

Features

  • Benchmark throughput and latency
  • Output in easy-to-process CSV
  • Configurable concurrency
  • Allows mixed workloads
  • Built-in TPC-B and LDBC SNB benchmarking modes
  • Custom workloads using built-in scripting language

Installation

Option 1: Prebuilt binary

You can download binaries in the "assets" section in the latest release here.

Option 2: Run via docker

Easier to use if you don't want to run against a database running on the host machine.

docker run jjdh/neobench -h

Usage

Run neobench -h for a list of available options.

# Run the built-in "TPC-B-like" benchmark in throughput testing mode.
# Before running the benchmark, run the built-in dataset populator for TPC-B (--init)
$ neobench --address neo4j://localhost:7687 --password secret \
    --builtin tpcb-like --init

Documentation

See the Docs for more details.

Building & releasing

Build and run integration tests with make

Release with bin/release

Issues prior to 1.0

  • Functions should be changed to align with cypher functions as much as possible (eg. greatest, least etc)
  • Syntax around parameters and when to use $ and when not to is confusing in list comprehensions, maybe default to never using $ except in queries? Eg :set a [ i in range(1,10) | $i ]; why no $ the first time i is used, but then $ when it's used the second time?
  • Load generation system should probably be modified to have a single goroutine generate load that goes on a queue for workers to execute, rather than each worker generating its own load, because that causes weird blocking issues
  • Support dropping transactions / marking them failed when database can't keep up with a set rate
  • Warn or crash if user specifies --rate without also specifying --latency

Contributions

This project has no current maintainer.

License

Apache 2

neobench's People

Contributors

jakewins avatar eastlondoner avatar voutilad avatar

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.