-
Notifications
You must be signed in to change notification settings - Fork 2
jepsen(dynamodb): linearizable register tests for every attribute type #615
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
Changes from all commits
eafa5da
d63bc01
51e452d
8685dc4
ce4688a
31d46a6
2adabcb
12c1738
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -95,6 +95,48 @@ jobs: | |
| timeout-minutes: 3 | ||
| run: | | ||
| timeout 120 ~/lein run -m elastickv.dynamodb-workload --local --time-limit 5 --rate 5 --concurrency 5 --dynamo-ports 63801,63802,63803 --host 127.0.0.1 | ||
| - name: Run DynamoDB per-type Jepsen workloads against elastickv | ||
| working-directory: jepsen | ||
| timeout-minutes: 10 | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
In Useful? React with 👍 / 👎. |
||
| run: | | ||
| # Run every type even if one fails, so the log shows which | ||
| # specific attribute types pass and which fail. The step | ||
| # still fails at the end if any single type failed. | ||
| declare -A RESULT | ||
| FAILED=() | ||
| for t in string number binary bool null string-set number-set binary-set list map; do | ||
| echo "::group::value-type=${t}" | ||
| set +e | ||
| timeout 120 ~/lein run -m elastickv.dynamodb-types-workload --local \ | ||
| --time-limit 5 --rate 5 --concurrency 4 \ | ||
| --value-type "${t}" \ | ||
| --dynamo-ports 63801,63802,63803 --host 127.0.0.1 | ||
| rc=$? | ||
| set -e | ||
| if [ "$rc" -eq 0 ]; then | ||
| RESULT[$t]="pass" | ||
| else | ||
| RESULT[$t]="fail(${rc})" | ||
| FAILED+=("$t") | ||
| fi | ||
| echo "::endgroup::" | ||
| done | ||
| echo | ||
| echo "=== per-type jepsen summary ===" | ||
| for t in string number binary bool null string-set number-set binary-set list map; do | ||
| printf ' %-12s %s\n' "$t" "${RESULT[$t]}" | ||
| done | ||
| if [ ${#FAILED[@]} -ne 0 ]; then | ||
| echo "FAILED types: ${FAILED[*]}" | ||
| exit 1 | ||
| fi | ||
| - name: Upload Jepsen store on per-type failure | ||
| if: failure() | ||
| uses: actions/upload-artifact@v7 | ||
| with: | ||
| name: jepsen-store-types | ||
| path: jepsen/store | ||
| retention-days: 7 | ||
| - name: Run S3 Jepsen workload against elastickv | ||
| working-directory: jepsen | ||
| timeout-minutes: 3 | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The new scheduled per-type sweep can be terminated before finishing all 10 attribute types because the outer step budget is
timeout-minutes: 30while each iteration allows up toPER_TYPE_TIMEOUT = TYPE_TL + 180(currently 240s), i.e. a worst-case 40 minutes for the loop. In slow or degraded runs where several type jobs approach their per-invocation timeout, GitHub Actions will kill the step early and produce partial coverage/false failures even though each individual invocation is still within its configured limit.Useful? React with 👍 / 👎.