Giter Site home page Giter Site logo

vanillabench's Introduction

VanillaBench

Build Status Apache 2.0 License Maven Central

VanillaBench is a benchmarking tool for testing the performance (throughput and latency) in extreme environment.

Type of Benchmarks

  • Micro-benchmarks
    • Design (TBA)
  • TPC-C (New-Order, Payment)
  • TPC-E (Simplified Trade-Order, Trade-Result)
  • Yahoo Cloud Benchmarks (YCSB)

Getting Started

This tutorial will guide you loading the testing data and running a benchmarking job.

Using Maven

The project is a Maven project, which means you can do all the work for running this project using Maven.

  1. Clone this repository:
> git clone https://github.com/vanilladb/vanillabench.git
  1. Execute the following command in the root of the project directory:
> mvn clean package

This will make Maven compile, test, package a jar and copy all the dependencies it needs to target/stand-alone.

  1. Change the working directory to target/stand-alone. Check if all the configurations in the properties are the same as your demands.

  2. To start up a VanillaCore server for benchmarking, execute the following command:

For Unix-like systems:

> bin/server {DB Name}

For Windows:

> bin/server.bat {DB Name}

(Please replace {DB Name} with your database name, which will be the name of the folder of your database files)

  1. To start up a benchmarking client, execute the following command:

For Unix-like systems:

> bin/client {Action}

For Windows:

> bin/client.bat {Action}

The {Action} you can use are:

  • 1 - Loading testing data
  • 2 - Running benchmarking RTEs

For example, if I want to load the testing data:

> bin/client 1

Using Eclipse

  1. Clone this repository:
> git clone https://github.com/vanilladb/vanillabench.git
  1. Clone VanillaCore (Optional, if you want to test your modification on VanillaCore):
> git clone https://github.com/vanilladb/vanillacore.git
  1. Import the projects into Eclipse by selecting File > Import > Maven > Existing Maven Projects.

  2. Create run configurations for clients and servers.

  • Server
    • Type: Java Application
    • Project: vanillabench
    • Main Class: org.vanilladb.bench.server.StartUp
    • Program Arguments: [DB Name]
    • VM Arguments:
      -Djava.util.logging.config.file=target/classes/java/util/logging/logging.properties
      -Dorg.vanilladb.bench.config.file=target/classes/org/vanilladb/bench/vanillabench.properties
      -Dorg.vanilladb.core.config.file=target/classes/org/vanilladb/core/vanilladb.properties
      
  • Client
    • Type: Java Application
    • Project: vanillabench
    • Main Class: org.vanilladb.bench.App
    • Program Arguments: [Action] (1 = Loading Testbed, 2 = Benchmarking)
    • VM Arguments:
      -Djava.util.logging.config.file=target/classes/java/util/logging/logging.properties
      -Dorg.vanilladb.bench.config.file=target/classes/org/vanilladb/bench/vanillabench.properties
      -Dorg.vanilladb.core.config.file=target/classes/org/vanilladb/core/vanilladb.properties
      
  1. Modify the properties in src/main/resources/org/vanilladb/bench/vanillabench.properties as your requirements.

  2. Start up a server using the configuration.

  3. Start up a client using the configuration.

  • You may need to load the testing data at least once before benchmarking.

Linking via Maven

<dependency>
  <groupId>org.vanilladb</groupId>
  <artifactId>bench</artifactId>
  <version>0.5.0</version>
</dependency>

Contact Information

If you have any question, you can either open an issue here or contact [email protected] directly.

License

Copyright 2016-2022 vanilladb.org contributors

Licensed under the Apache License 2.0

vanillabench's People

Contributors

slmt avatar xuan19970825 avatar pin-yu avatar frankccccc avatar zululin 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.