Skip to content
Database benchmarking tool
Pull request Compare This branch is 64 commits behind pavel-paulau:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


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


go get


blurr -path=workloads/workload.conf

Configuration files

blurr uses JSON format for configuration. Example is below:

    "Database": {
        "Driver": "MongoDB",
        "Name": "default",
        "Table": "default",
        "Addresses": [
    "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.