[
https://issues.apache.org/jira/browse/KAFKA-20838?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Eric Chang updated KAFKA-20838:
-------------------------------
Description:
IQv2StoreIntegrationTest has 280 parameterized cases and takes about 918
seconds (~15m19s) in CI. Logs repeatedly report:
{code}
Assignment delayed due to the configured initial rebalance delay.
{code}
Each invocation starts exactly one KafkaStreams instance with
num.stream.threads=1. It does not add stream threads or start another instance
with the same application.id, and every invocation uses a distinct
application.id. Restore and global consumers are not application-group members.
Therefore, each affected Streams group has one member.
The suite covers stores, DSL/PAPI, caching, logging, headers, and both group
protocols. It validates IQv2 store/query behavior, not initial group formation,
so the delay only adds idle time.
h3. Proposed change
* Set group.streams.initial.rebalance.delay.ms=0 on this test's embedded broker.
* Preserve the full 280-case matrix.
h3. Local JDK 21 results
* Baseline: 953.808s; 280 passed; 216 delay warnings.
* Modified: 679.107s; 280 passed; no delay warnings; 28.8% faster.
* Modified rerun: 668.169s; 280 passed; no delay warnings; 30.0% faster.
was:
IQv2StoreIntegrationTest has 280 parameterized cases and currently takes about
918 seconds (~15m19s) in CI.
Measurements show that the 108 non-global cases using the Streams group
protocol take ~698.6s, while their matched classic-protocol cases take ~154.0s.
Logs repeatedly report:
{code}
Assignment delayed due to the configured initial rebalance delay.
{code}
Each parameterized case starts a single client with a unique application.id.
This test validates IQv2 store/query behavior; it does not test cold-start or
rebalance timing.
Proposed change:
* Configure the embedded broker for this test with
group.streams.initial.rebalance.delay.ms=0.
* Preserve the full parameter matrix.
* A/B benchmark the class and rerun the relevant integration tests to validate
behavior.
h3. Local A/B results (JDK 21)
* Baseline: JUnit suite 953.808s; 280/280 passed; 216 initial-delay warnings.
* Patched run 1: 679.107s; 280/280 passed; 0 warnings; 28.8% faster.
* Patched rerun: 668.169s; 280/280 passed; 0 warnings; 30.0% faster.
* Average patched reduction: about 29.4%.
The repeatable savings and zero warnings confirm that the test-only
configuration removes the unnecessary delay while the full 280-case parameter
matrix remains exercised.
> Reduce IQv2StoreIntegrationTest runtime by disabling test-only Streams
> initial rebalance delay
> ----------------------------------------------------------------------------------------------
>
> Key: KAFKA-20838
> URL: https://issues.apache.org/jira/browse/KAFKA-20838
> Project: Kafka
> Issue Type: Improvement
> Components: streams
> Reporter: Eric Chang
> Assignee: Eric Chang
> Priority: Major
>
> IQv2StoreIntegrationTest has 280 parameterized cases and takes about 918
> seconds (~15m19s) in CI. Logs repeatedly report:
> {code}
> Assignment delayed due to the configured initial rebalance delay.
> {code}
> Each invocation starts exactly one KafkaStreams instance with
> num.stream.threads=1. It does not add stream threads or start another
> instance with the same application.id, and every invocation uses a distinct
> application.id. Restore and global consumers are not application-group
> members. Therefore, each affected Streams group has one member.
> The suite covers stores, DSL/PAPI, caching, logging, headers, and both group
> protocols. It validates IQv2 store/query behavior, not initial group
> formation, so the delay only adds idle time.
> h3. Proposed change
> * Set group.streams.initial.rebalance.delay.ms=0 on this test's embedded
> broker.
> * Preserve the full 280-case matrix.
> h3. Local JDK 21 results
> * Baseline: 953.808s; 280 passed; 216 delay warnings.
> * Modified: 679.107s; 280 passed; no delay warnings; 28.8% faster.
> * Modified rerun: 668.169s; 280 passed; no delay warnings; 30.0% faster.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)