Review comments

This commit is contained in:
Eric Borczuk 2021-11-11 12:07:52 -05:00
parent 08e4ff095d
commit bfdba82e55
4 changed files with 18 additions and 17 deletions

View File

@ -50,18 +50,19 @@ The example JSON looks like:
## Filters tested
The advanced search workload can test the following `where` clauses:
- in: match1 IN [0]
- not-in: match2 NOT IN ["false"]
- mem-and: match2 EQ "true" AND match3 NOT EQ false
- mem-or: match1 LT 1 OR match3 EXISTS
- complex1: match1 EQ 0 AND (match2 EQ "true" OR match3 EQ false)
- complex2: (match1 LTE 0 OR match2 EQ "false") AND (match2 EQ "false" OR match3 EQ true)
- complex3: (match1 LTE 0 AND match2 EQ "true") OR (match2 EQ "false" AND match3 EQ true)
- in: `match1 IN [0]`
- not-in: `match2 NOT IN ["false"]`
- mem-and: `match2 EQ "true" AND match3 NOT EQ false`
- mem-or: `match1 LT 1 OR match3 EXISTS`
- complex1: `match1 EQ 0 AND (match2 EQ "true" OR match3 EQ false)`
- complex2: `(match1 LTE 0 OR match2 EQ "false") AND (match2 EQ "false" OR match3 EQ true)`
- complex3: `(match1 LTE 0 AND match2 EQ "true") OR (match2 EQ "false" AND match3 EQ true)`
## Workload Parameters
- `docscount` - the number of documents to write during rampup (default: `10_000_000`)
- `docpadding` - the number of fields to add to each document; useful for writing larger documents. A value of e.g. `5` would make each document have 20 leaf values, instead of 15. (default: `0`)
- `match-ratio` - a value between 0 and 1 detailing what ratio of the documents written should match the search parameters. If match-ratio is e.g. `0.1` then approximately one-tenth of the documents will have `match1`, `match2`, and `match3` values that are `0`, `"true"`, and `true`, respectively. (default: `0.01`)
- `fields` - the URL-encoded value for `fields` that you would send to the Docs API. This restricts the fields returned during benchmarking.

View File

@ -16,7 +16,7 @@ description: |
# complex3: (match1 LTE 0 AND match2 EQ "true") OR (match2 EQ "false" AND match3 EQ true)
scenarios:
schema: run driver=http tags==phase:schema threads==<<threads:1>> cycles==UNDEF
rampup-write: run driver=http tags==phase:rampup-write cycles===TEMPLATE(docscount,10000000) docpadding=TEMPLATE(docpadding,15) match-ratio=TEMPLATE(match-ratio,0.01) threads=<<threads:auto>> errors=timer,warn
rampup-write: run driver=http tags==phase:rampup-write cycles===TEMPLATE(docscount,10000000) docpadding=TEMPLATE(docpadding,0) match-ratio=TEMPLATE(match-ratio,0.01) threads=<<threads:auto>> errors=timer,warn
rampup-read: run driver=http tags==phase:rampup-read cycles===TEMPLATE(rampup-cycles, 10000000) page-size=TEMPLATE(page-size,3) fields=TEMPLATE(fields,%5b%5d) threads=<<threads:auto>> errors=timer,warn
main: run driver=http tags==phase:main cycles===TEMPLATE(read-cycles,TEMPLATE(docscount,10000000)) page-size=TEMPLATE(page-size,3) fields=TEMPLATE(fields,%5b%5d) threads=<<threads:auto>> errors=timer,warn
main-in: run driver=http tags==phase:main,filter:in cycles===TEMPLATE(read-cycles,TEMPLATE(docscount,10000000)) page-size=TEMPLATE(page-size,3) fields=TEMPLATE(fields,%5b%5d) threads=<<threads:auto>> errors=timer,warn

View File

@ -50,11 +50,11 @@ The example JSON looks like:
## Filters tested
The basic search workload can test the following `where` clauses:
- eq: match3 EQ true
- lt: match1 LT 1
- and: match1 LT 1 AND match2 EQ "true"
- or: match1 LT 1 OR match2 EQ "true" or match3 EQ true
- or-single-match: match1 LT 1 OR match2 EQ "notamatch"
- eq: `match3 EQ true`
- lt: `match1 LT 1`
- and: `match1 LT 1 AND match2 EQ "true"`
- or: `match1 LT 1 OR match2 EQ "true" or match3 EQ true`
- or-single-match: `match1 LT 1 OR match2 EQ "notamatch"`
## Workload Parameters

View File

@ -167,8 +167,8 @@ blocks:
phase: rampup-read
filter: or
statements:
# where={"$or":[{"match1":{"$lt":1}},{"match2":{"$eq":"true"}},{"match3":{"$eq":true}}]}
- rampup-or: GET <<protocol:http>>://{weighted_hosts}:<<stargate_port:8082>><<path_prefix:>>/v2/namespaces/<<keyspace:docs_search_basic>>/collections/<<table:docs_collection>>?where=%7B%22%24or%22%3A%5B%7B%22match1%22%3A%7B%22%24lt%22%3A1%7D%7D%2C%7B%22match2%22%3A%7B%22%24eq%22%3A%22true%22%7D%7D%2C%7B%22match3%22%3A%7B%22%24eq%22%3Atrue%7D%7D%5D%7D&page-size=<<page-size,3>>&fields=<<fields,%5b%5d>>
# where={"$or":[{"match1":{"$lt":1}},{"match3":{"$eq":true}}]}
- rampup-or: GET <<protocol:http>>://{weighted_hosts}:<<stargate_port:8082>><<path_prefix:>>/v2/namespaces/<<keyspace:docs_search_basic>>/collections/<<table:docs_collection>>?where=%7B%22%24or%22%3A%5B%7B%22match1%22%3A%7B%22%24lt%22%3A1%7D%7D%2C%7B%22match3%22%3A%7B%22%24eq%22%3Atrue%7D%7D%5D%7D&page-size=<<page-size,3>>&fields=<<fields,%5b%5d>>
Accept: "application/json"
X-Cassandra-Request-Id: "{request_id}"
X-Cassandra-Token: "<<auth_token:my_auth_token>>"
@ -237,8 +237,8 @@ blocks:
phase: main
filter: or
statements:
# where={"$or":[{"match1":{"$lt":1}},{"match2":{"$eq":"true"}},{"match3":{"$eq":true}}]}
- main-or: GET <<protocol:http>>://{weighted_hosts}:<<stargate_port:8082>><<path_prefix:>>/v2/namespaces/<<keyspace:docs_search_basic>>/collections/<<table:docs_collection>>?where=%7B%22%24or%22%3A%5B%7B%22match1%22%3A%7B%22%24lt%22%3A1%7D%7D%2C%7B%22match2%22%3A%7B%22%24eq%22%3A%22true%22%7D%7D%2C%7B%22match3%22%3A%7B%22%24eq%22%3Atrue%7D%7D%5D%7D&page-size=<<page-size,3>>&fields=<<fields,%5b%5d>>
# where={"$or":[{"match1":{"$lt":1}},{"match3":{"$eq":true}}]}
- main-or: GET <<protocol:http>>://{weighted_hosts}:<<stargate_port:8082>><<path_prefix:>>/v2/namespaces/<<keyspace:docs_search_basic>>/collections/<<table:docs_collection>>?where=%7B%22%24or%22%3A%5B%7B%22match1%22%3A%7B%22%24lt%22%3A1%7D%7D%2C%7B%22match3%22%3A%7B%22%24eq%22%3Atrue%7D%7D%5D%7D&page-size=<<page-size,3>>&fields=<<fields,%5b%5d>>
Accept: "application/json"
X-Cassandra-Request-Id: "{request_id}"
X-Cassandra-Token: "<<auth_token:my_auth_token>>"