blurr

command module
v0.0.0-...-47f99fb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 8, 2014 License: Apache-2.0 Imports: 11 Imported by: 0

README

blurr

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

Prerequisites

  • go
  • bzr

Installation

go get github.com/couchbaselabs/blurr

Usage

blurr workload.conf

Configuration files

blurr uses JSON format for configuration. There are two groups of parameters, 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": "N1QL",
        "CreatePercentage": 4,
        "ReadPercentage": 60,
        "UpdatePercentage": 32,
        "DeletePercentage": 4,
        "Records": 100000,
        "Operations": 100000,
        "ValueSize": 2048,
        "Workers": 16,
        "Throughput": 2000,
        "HotDataPercentage": 20,
        "HotSpotAccessPercentage": 95,
        "RunTime": 3600,
        "QueryWorkers": 10,
        "QueryThroughput": 100,
        "Indexes": [
    		"coins_stats_by_state_and_year",
    		"street_by_year_and_coins",
    		"distinct_years"
    	]
    }
}

Basic parameters:

  • Database.Driver - database driver for benchmark (MongoDB, Couchbase, Tuq or Cassandra)
  • 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 (Default, HotSpot or N1QL)
  • Workload.(Create|Read|Update|Delete)Percentage - CRUD operations ratio, sum must be equal 100
  • Workload.Records - number of existing records(rows, documents) in database before benchmark
  • Workload.Operations - total number of operations to perform, defines benchmark run time
  • Workload.ValueSize - size of synthetic values
  • Workload.Workers - number of concurrent CRUD workers (threads, clients, and etc.)
  • Workload.Throughput - enable limited throughput of CRUD ops if provided
  • Workload.HotDataPercentage - percentage of hot records in dataset (HotSpot workload)
  • Workload.HotSpotAccessPercentage - percentage of operations that hit hot subset (HotSpot workload)
  • Workload.RunTime - optional benchmark run time in seconds

Additional parameters for secondary indexes:

  • Workload.QueryWorkers - number of concurrent query workers
  • Workload.QueryThroughput - enable limited throughput of queries if provided
  • Workload.Indexes - [optional] list of secondary indexes

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL