IN PROGRESS
...
Overview:
...
?limit=2147483647&query=(itemId==${current_item} and status.name==Open);
?limit=2147483647&query=(itemId==${current_item} and status.name=="Open*").
Tests are done with 1, 5, 8 users.
...
There are 2 test set with the three tests each. 1,5,8 users for GET /circulation/loans?limit=2147483647&query=(itemId==${current_item} and status.name==Open) and 1,5,8 users for GET /circulation/loans?limit=2147483647&query=(itemId==${current_item} and status.name=="Open*").
Second one is much faster than the first one.
...
| Test | Virtual users | Query | Profiled | Duration in seconds | Ramp Up in seconds |
|---|---|---|---|---|---|
| 1 | 1 | ?limit=2147483647&query=(itemId==${current_item} and status.name==Open) | no | 1800 | 0 |
| 2 | 5 | ?limit=2147483647&query=(itemId==${current_item} and status.name==Open) | no | 1800 | 50 |
| 3 | 8 | ?limit=2147483647&query=(itemId==${current_item} and status.name==Open) | no | 1800 | 80 |
| 4 | 1 | ?limit=2147483647&query=(itemId==${current_item} and status.name=="Open*") | no | 1800 | 0 |
| 5 | 5 | ?limit=2147483647&query=(itemId==${current_item} and status.name=="Open*") | no | 1800 | 50 |
| 6 | 8 | ?limit=2147483647&query=(itemId==${current_item} and status.name=="Open*") | no | 1800 | 80 |
Results:
As you can see from table below- there a big difference between 75 percentiles for ?limit=2147483647&query=(itemId==${current_item} and status.name==Open) (1 user- 289 ms, 5 users-357 ms, 8 users - 414 ms)
and for ?limit=2147483647&query=(itemId==${current_item} and status.name=="Open*") (1 user- 41 ms, 5 users-51 ms, 8 users - 58 ms). Which means that second query are much faster that the first one, that's why I would recommend to use second one ?limit=2147483647&query=(itemId==${current_item} and status.name=="Open*").
Comparison of test runs below:
| Test | Virtual Users | Requests | Total | OK | 75th pct | 95th pct | 99th pct | Max |
| Test 1 | 1 | GET_circulation/loans?limit=2147483647&query=(itemId==${current_item} and status.name==Open) | 6389 | 6389 | 0.289 | 0.331 | 0.379 | 1.454 |
| Test 2 | 5 | 26097 | 26097 | 0.357 | 0.422 | 0.51 | 1.399 | |
| Test 3 | 8 | 49808 | 32221 | 0.414 | 0.502 | 0.649 | 17.104 | |
| Test 4 | 1 | GET_circulation/loans?limit=2147483647&query=(itemId==${current_item} and status.name=="Open*") | 40467 | 40467 | 0.041 | 0.056 | 0.118 | 1.281 |
| Test 5 | 5 | 170235 | 170235 | 0.051 | 0.074 | 0.24 | 4.08 | |
| Test 6 | 8 | 247471 | 247471 | 0.058 | 0.087 | 0.156 | 7.27 |
...
New query: (?limit=2147483647&query=(itemId==${current_item} and status.name=="Open*")) 8 User test
Instance CPU utilization
...
Note that using new query we'll have less instance and service level CPU utilization however it produces higher DB CPU usage.
Giraffe Chart
Note: As you can see, the the giraffe chart contains less inside calls that the previous one. That may explain slowness of old query .