gabriellefu opened a new pull request, #23556: URL: https://github.com/apache/kafka/pull/23556
- **`TaskAssignorTestbed`** — generates a random topology and group from a
seed
(two profiles: `SMALL` for logical corners, `LARGE` for production
shape), runs the
assignor until the assignment is a fixed point, then applies random
rebalance
events (process add/drop/restart/retag, member add/drop, standby count
change)
and converges again. A failure prints the seed and the full history;
replay a
single scenario with `STREAMS_ASSIGNOR_FUZZ_SEED=<seed>` or shift the
whole run
with `STREAMS_ASSIGNOR_FUZZ_BASE_SEED=<seed>` (system properties work
from an IDE).
- **`AssignmentInvariants`** — properties every assignor must satisfy,
asserted on
every assignment: output covers exactly the group members, every task is
active
on exactly one member, standbys only on stateful tasks, at most
`numStandbyReplicas` standbys per task, no process holds two copies of a
task.
- **`AssignmentMetrics`** — grades an assignment without asserting:
active/total
spread per member, load spread per process, process/member stickiness,
task
moves, rack diversity per tag. The summary over a run is printed so two
versions
of an assignor can be compared.
- **`StickyTaskAssignorFuzzTest`** — runs `StickyTaskAssignor` through the
testbed
and adds the checks its algorithm guarantees: no member above
`ceil(activeTasks / members)`, every stateful task gets exactly
`min(numStandbyReplicas, processes - 1)` standbys, and rack-aware tags
do not
change the active assignment.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
