rustyrazorblade opened a new pull request, #111: URL: https://github.com/apache/cassandra-easy-stress/pull/111
Fixes #110. The populate phase now has its own pull loop for each runner thread, in place of `RequestQueue`. A semaphore bounds the writes in flight, the driver retries failed writes through a `populate` execution profile, and each thread waits for all of its writes before it returns. Rows that still fail are counted in a new `populateErrors` meter, not hidden by `resetErrors()`. ## New flags - `--populate all` (or `-1`): write every partition once. - `--populate.concurrency`: writes in flight for each thread, default 100. - `--populate.generator`: default `sequence`. - `--populate.batch`: rows to a partition in one batch, default 1. Counter updates use a `COUNTER` batch. - `--populate.deletes` / `--populate.deleteratio`: default 0. A delete goes alone, not in a batch. ## Behavior changes - Populate no longer uses `--rate` or `--deleterate`. - The optimizer starts after populate. - The default populate key order is `sequence`, not `random`. - `sequence` now covers `0` until `max`, the same range as `random`. - `Locking` populates the keys that its main phase uses. ## Testing - `./gradlew preflight` passes on JDK 21: ktlint, detekt, `distTar`, and 160 tests (0 failures). - New unit tests cover the populate loop and the retry policy. - New integration tests (`PopulateTest`) read each table back and check the row count for `KeyValue`, `BasicTimeSeries`, `CountersWide`, and `Locking`. -- 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
