Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Database benchmarking tool
Branch: master
Pull request Compare This branch is 64 commits behind pavel-paulau:master.


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.