Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Database benchmarking tool

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 databases
Octocat-spinner-32 samples
Octocat-spinner-32 workloads
Octocat-spinner-32 .gitignore
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.md
Octocat-spinner-32 config.go
Octocat-spinner-32 main.go
README.md

blurr

blurr is simple and flexible tool for database benchmarking. It's written in Go and supports custom database drivers and workloads.

Dependencies

go get labix.org/v2/mgo

Usage

blurr -path=workloads/workload.conf

Configuration files

blurr uses JSON format for configuration. Example is below:

{
    "Database": {
        "Driver": "MongoDB",
        "Name": "default",
        "Table": "default",
        "Addresses": [
            "10.2.2.1:27017",
            "10.2.2.2:27017",
            "10.2.2.3:27017"
        ]
    },
    "Workload": {
        "Type": "DefaultWorkload",
        "CreatePercentage": 4,
        "ReadPercentage": 60,
        "UpdatePercentage": 12,
        "DeletePercentage": 4,
        "QueryPercentage": 20,
        "Records": 100000,
        "Operations": 100000,
        "ValueSize": 2048,
        "IndexableFields": 9,
        "Workers": 16,
        "TargetThroughput": 2000
    }
}

Configuration includes two groups of parameters:

  • Database.Driver - database driver for benchmark
  • Database.Name - name of database
  • Database.Table - name of table, collection, bucket and etc.
  • Database.Addresses - list of host:port string to use in connection pool
  • Workload.Type - workload type (only DefaultWorkload is available so far)
  • Workload.(Create|Read|Update|Delete|Query)Percentage - CRUD-Q operations ratio, sum must be equal 100
  • Workload.Records - number of existing records(row, documents) in database before benchmark
  • Workload.Operations - total number of operations to perform, defines benchmark run time
  • Workload.ValueSize - total size of synthetic values
  • Workload.IndexableFields - number of fields that must support secondary indexes (basically they have deterministic values)
  • Workload.Workers - number of concurrent workers (threads, clients, and etc.)
  • Workload.TargetThroughput - enable limited throughput if provided
Something went wrong with that request. Please try again.