Lianet Magrans created KAFKA-16033:
--------------------------------------
Summary: Review retry logic of OffsetFetch and OffsetCommit
responses
Key: KAFKA-16033
URL: https://issues.apache.org/jira/browse/KAFKA-16033
Project: Kafka
Issue Type: Sub-task
Components: clients, consumer
Reporter: Lianet Magrans
Assignee: Lianet Magrans
The retry logic for OffsetFetch and OffsetCommit requests lives in the
CommitRequestManager, and applies to requests issued from multiple components
(AsyncKakfaConsumer for commitSync and commitAsync, CommitRequestManager for
the regular auto-commits, MembershipManager for auto-commits before rebalance,
auto-commit before closing consumer). While this approach helps to avoid having
the retry logic in each caller, currently the CommitManager has it in different
places and it ends up being rather hard to follow.
This task aims at reviewing the retry logic from a high level perspective
(multiple callers, with retry needs that have similarities and differences at
the same time). So the review should asses the similarities vs differences, and
then consider two options:
1. Keep retry logic centralized in the CommitManager, but fixed in a more
consistent way, applied the same way for all requests, depending on the
intention expressed by the caller. Advantages of this approach (current
approach + improvement) is that callers that require the same retry logic could
reuse if, keeping it in a single place (ex. commitSync from the consumer
retries in the same way as the auto-commit before rebalance).
2. move retry logic to the caller. This aligns with the way it was done on the
legacy coordinator, but the main challenge seems to be not duplicating the
retry logic in callers that require the same.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)