KAFKA-7819: Improve RoundTripWorker#6187
KAFKA-7819: Improve RoundTripWorker#6187cmccabe merged 4 commits intoapache:trunkfrom stanislavkozlovski:KAFKA-7819-misc-roundtripworker-improvements
Conversation
This patch changes the Trogdor RoundTripWorker to use a `long` field for maxMessages and makes the consumer group used unique
|
JDK 11 passed, JDK 8 failed with one test (lost track of which one it is) |
|
Thanks, @stanislavkozlovski . Looks good overall. Suggest using a mutex and condition variable rather than busy-waiting. |
…r than busy waiting
| long lastLogTimeMs = Time.SYSTEM.milliseconds(); | ||
| while (true) { | ||
| try { | ||
| lock.lock(); |
There was a problem hiding this comment.
It's definitely overkill to lock the whole function body, right? I guess we only have one thread running this now, but it could be an issue if we want to have multiple threads run it in the future.
Let's just replace the AtomicLong with a regular long, and use the lock to protect changes to the unackedSends variable.
| private KafkaConsumer<byte[], byte[]> consumer; | ||
|
|
||
| private CountDownLatch unackedSends; | ||
| private volatile Long unackedSends; |
There was a problem hiding this comment.
volatile is not needed here, since this is only accessed under the lock.
|
retest this please |
|
LGTM |
|
JDK 8 passed I think this is good to merge |
|
Failed test is unrelated. |
* apache/trunk: (23 commits) KAFKA-7986: Distinguish logging from different ZooKeeperClient instances (apache#6493) KAFKA-8102: Add an interval-based Trogdor transaction generator (apache#6444) MINOR: Fix misspelling in protocol documentation KAFKA-8150: Fix bugs in handling null arrays in generated RPC code (apache#6489) KAFKA-8014: Extend Connect integration tests to add and remove workers dynamically (apache#6342) MINOR: Remove line for testing repartition topic name (apache#6488) MINOR: add MacOS requirement to Streams docs MINOR: fix message protocol help text for ElectPreferredLeadersResult (apache#6479) MINOR: list-topics should not require topic param MINOR: Clean up ThreadCacheTest (apache#6485) MINOR: Avoid unnecessary collection copy in MetadataCache (apache#6397) KAFKA-8142: Fix NPE for nulls in Headers (apache#6484) KAFKA-7243: Add unit integration tests to validate metrics in Kafka Streams (apache#6080) MINOR: Add verification step for Streams archetype to Jenkins build (apache#6431) KAFKA-7819: Improve RoundTripWorker (apache#6187) KAFKA-7989: RequestQuotaTest should wait for quota config change before running tests (apache#6482) KAFKA-8098: Fix Flaky Test testConsumerGroups KAFKA-6958: Add new NamedOperation interface to enforce consistency in naming operations (apache#6409) MINOR: capture result timestamps in Kafka Streams DSL tests (apache#6447) MINOR: updated names for deprecated streams constants (apache#6466) ...
RoundTripWorker to should use a long field for maxMessages rather than an int. The consumer group used should unique as well. Reviewers: Colin P. McCabe <cmccabe@apache.org>
This patch changes the Trogdor RoundTripWorker to use a
longfield for maxMessages and makes the consumer group used unique