No description, website, or topics provided.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bindings/lib
group_vars/all
jdbc-binding/lib
roles/create_instance/tasks
templates
.ansible.cfg
LICENSE
README.md
base.py
benchmark.yml
cleanup.yml
generator.yml
generator_pgbench.yml
install_postgres_deb.yml
install_postgres_source.yml
metrics.yml
mongodb.yml
monitoring.yml
mysql.yml
nvme.yml
parse.py
parser.py
postgresql.yml
postgresql_from_source.yml
read_mysql.json
run.sh
sar.py
test.yml
test_load.yml
test_mongo.yml Improve roles description, fix variables recursion Feb 5, 2018
test_mysql.yml
test_postgresql.yml
test_postgresql_nvme.yml
test_run.yml
test_with_pgbench.yml
test_with_remote_pgbench.yaml
update_generator.yml
update_mongodb.yml
update_mysql.yml
update_postgresql.yml
update_postgresql_from_source.yml

README.md

ansible-ycsb

Ansible-ycsb is a simple tool, created for Highload++ 2016, to perform a lot of different benchmarks for PostgreSQL(jsonb), MySQL(json) and MongoDB(bson) on AWS EC2 using my fork of YCSB. Warning: work in progress.

List of available options:

Databases

  • postgresql - perform tests for PostgreSQL jsonb
  • mysql - perform tests for MySQL json
  • mongodb - perform tests for MongoDB
  • prevent_cleanup - keep all instances after a test (for debugging purposes)
  • field_index - use functional index over jsonb
  • postgresql_from_deb - install PostgreSQL from ubuntu repositories
  • postgresql_from_source - install PostgreSQL directly from source (master branch)
  • journaled - set write concern level to journaled for MongoDB
  • jsonb_check - add constraints for jsonb documents
  • toast_check - change column storage type for PostgreSQL
  • sql - test relation instead of document for PostgreSQL

AWS

  • subnet_id - VPC subnet id
  • keypair - your AWS keypair
  • generator_ami - prepared snapshot for workload generator
  • postgresql_ami - prepared snapshot for PostgreSQL
  • mysql_ami - prepared snapshot for MySQL
  • mongodb_ami - prepared snapshot for MongoDB
  • image - default image to use when creating instances (when not overridden with generator_ami, postgresql_ami, mysql_ami, or mongodb_ami).
  • region - AWS region ('us-west-2' by default)
  • availability_zone - AWS Availability Zone ('us-west-2c' by default)
  • placement_group - EC2 Placement Group ('ycsb' by default)

YCSB

  • workload - YCSB workload type
  • threads - amount of clients/threads for workload
  • custom_size - allows to use documents of custom size
  • field_count - if custom_size is True, allows to set amount of fields inside document
  • field_length - if custom_size is True, allows to set a lenght for each field in document
  • recordcount - number of records to load into the database initially (0 by default)
  • operationcount - number of operations to perform.
# perform benchmarks
ansible-playbook benchmark.yml -i "localhost," -e "option1=True option2=..."

# clean up just in case there were an errors in the previous script run
ansible-playbook cleanup.yml -i "localhost," -e "options..."