Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add fallout smoke test #423

Merged
merged 8 commits into from
May 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
142 changes: 142 additions & 0 deletions fallout/smoke-test-fallout.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
# region setup
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we separate tests info folders? fallout/smoke-test/..

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will not do, following same as in the /nosqlbench/ directory..

astra_provider: aws
astra_region: eu-west-1

# client setup
client_count: 1
client_provider: ec2
client_region: eu-west-1
client_type: m5.2xlarge
client_nb_version: 5.17.3-release

# branch where NoSQLBench test file is located
test_branch: main

# keyspace setup
keyspace: jsonapi_smoke_test

# 100K documents and 25 groups, so that sort and count target ~4K docs
# adapt if needed, but keep in mind that sort supports max 10K docs per operation
docs_count: 100000
sort_groups: 25

# load setup:
# - total of 1M ops split between 10 operations equally
# - each operation limited to 25ops/s, totals to 250ops/s
# - each operation will be executed by 3 clients, totals to 30 clients
op_cycles: 100000
op_rate: 25
op_connections: 3

# ops from main block of smoke-test-nosqlbench.yaml
ops:
- op: find-one-id
- op: find-one-by-city
- op: find-multi-by-married-name-exists
- op: find-multi-by-married-name-exists-with-projection
- op: find-multi-find-by-group-sort-by-name
- op: find-one-by-name-newest-and-update-city
- op: delete-one-id
- op: find-one-id-and-replace-upsert
- op: update-many-by-country
- op: count-by-group

---

ensemble:
server:
node.count: 1
provisioner:
name: astra
properties:
cloud.provider: {{astra_provider}}
cloud.region: {{astra_region}}
keyspace: {{keyspace}}
settle_time: 120

client:
node.count: {{client_count}}
provisioner:
name: ctool
properties:
cloud.provider: {{client_provider}}
cloud.region: {{client_region}}
cloud.instance.type: {{client_type}}
configuration_manager:
- name: nosqlbench_ssh
properties:
version: {{client_nb_version}}

workload:
phases:

# set schema phase, ensures collection table is created from scratch
- nb_set_schema:
module: nosqlbench
properties:
client.size: 1
alias: schema
service_type: stargate
args:
- driver=http
- workload=https://raw.githubusercontent.com/stargate/jsonapi/{{test_branch}}/fallout/smoke-test-nosqlbench.yaml
- tags=block:schema-collection
- namespace={{keyspace}}
- protocol=https
- jsonapi_port=443
- path_prefix=/api/json
- errors=stop

# prepare phase that inserts desired amount of documents
# executed only on a single client, stopped on errors
- prepare:
module: nosqlbench
properties:
client.size: 1
alias: prepare
service_type: stargate
cycles: {{docs_count}}
args:
- driver=http
- workload=https://raw.githubusercontent.com/stargate/jsonapi/{{test_branch}}/fallout/smoke-test-nosqlbench.yaml
- tags=block:write
- threads=30
- errors=stop
- namespace={{keyspace}}
- protocol=https
- jsonapi_port=443
- path_prefix=/api/json
- connections=30
- docscount={{docs_count}}

-
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should I add support for sequential execution?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Skipped.

{{#ops}}
main_{{op}}:
module: nosqlbench
properties:
alias: main_{{op}}
service_type: stargate
cycles: {{op_cycles}}
args:
- driver=http
- workload=https://raw.githubusercontent.com/stargate/jsonapi/{{test_branch}}/fallout/smoke-test-nosqlbench.yaml
- tags=block:main,name:.*{{op}}
- threads=1x
- errors=histogram
- namespace={{keyspace}}
- protocol=https
- jsonapi_port=443
- path_prefix=/api/json
- connections={{op_connections}}
- docscount={{docs_count}}
- sort_groups={{sort_groups}}
- rate={{op_rate}}
{{/ops}}

checkers:
verify_success:
checker: nofail

artifact_checkers:
process_hdr:
artifact_checker: hdrtool
Loading