Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-14246

Update threading model for Consumer

    XMLWordPrintableJSON

Details

    Description

      Hi community,

       

      We are refactoring the current KafkaConsumer and making it more asynchronous.  This is the master Jira to track the project's progress; subtasks will be linked to this ticket.  Please review the design document and feel free to use this thread for discussion. 

       

      The design document is here: https://cwiki.apache.org/confluence/display/KAFKA/Proposal%3A+Consumer+Threading+Model+Refactor

       

      The original email thread is here: https://lists.apache.org/thread/13jvwzkzmb8c6t7drs4oj2kgkjzcn52l

       

      I will continue to update the 1pager as reviews and comments come.

       

      Thanks, 

      P

      Attachments

        Issue Links

          1.
          The background thread should try to process the remaining task until the shutdown timer is expired Sub-task Open Philip Nee
          2.
          Timeout request might retry forever even if the user API times out in PrototypeAsyncConsumer Sub-task Open Philip Nee
          3.
          Remove duplicated integration tests for new consumer Sub-task Open Unassigned
          4.
          DefaultBackgroundThread is running tight loop Sub-task Open Philip Nee
          5.
          Document event queueing patterns Sub-task Open Kirk True
          6.
          Consumer event queues should be bounded Sub-task Open Kirk True
          7.
          Implement ConsumerGroupProtocolVersionResolver to determine consumer group protocol Sub-task Open Kirk True
          8.
          Send GroupConsumerHeartbeatRequest on Consumer.close() Sub-task Open Philip Nee
          9.
          Evaluate conditions for short circuiting consumer API calls Sub-task Open Philip Nee
          10.
          Review committed offset refresh logic Sub-task Open Philip Nee
          11.
          Remove NetworkClientDelegate methods isUnavailable, maybeThrowAuthFailure, and tryConnect Sub-task Patch Available Phuc Hong Tran
          12.
          Determine if Timer should be used elsewhere in PrototypeAsyncConsumer.updateFetchPositions() Sub-task Open Unassigned
          13.
          Improve handling of fetching during metadata updates Sub-task Open Kirk True
          14.
          Investigate FetcherTest's/FetchRequestManager's testCompletedFetchRemoval Sub-task Open Kirk True
          15.
          Investigate FetcherTest's/FetchRequestManager's duplicate metadata update in assignFromUserNoId Sub-task Open Kirk True
          16.
          Investigate FetcherTest's/FetchRequestManager's testFetchingPendingPartitions and testInflightFetchOnPendingPartitions overlap Sub-task Open Kirk True
          17.
          Investigate FetcherTest's/FetchRequestManager's testQuotaMetrics Sub-task Open Kirk True
          18.
          Investigate FetcherTest's/FetchRequestManager's testFetcherLeadMetric Sub-task Open Kirk True
          19.
          Investigate FetcherTest's/FetchRequestManager's testFetchResponseMetrics Sub-task Open Kirk True
          20.
          Investigate FetcherTest's/FetchRequestManager's testFetchCompletedBeforeHandlerAdded Sub-task Open Kirk True
          21.
          Investigate ConsumerNetworkThreadTest's testPollResultTimer Sub-task Open Philip Nee
          22.
          Add tests to verify OffsetFetcherUtils.getOffsetResetTimestamp() Sub-task Open Unassigned
          23.
          Investigate ConsumerNetworkThreadTest's testResetPositionsProcessFailureIsIgnored Sub-task Open Philip Nee
          24.
          Revoke partitions on Consumer.close() Sub-task Open Philip Nee
          25.
          Implement max poll interval Sub-task Patch Available Philip Nee
          26.
          Refactor OffsetFetchRequestState Error handling to be more consistent with OffsetCommitRequestState Sub-task Open Lan Ding
          27.
          Should ConsumerNetworkThread wrap the exception and notify the polling thread? Sub-task Open Unassigned
          28.
          Investigate autocommit retry logic Sub-task Open Unassigned
          29.
          Remove excessive use of spy in ConsumerTestBuilder Sub-task Open Unassigned
          30.
          Implement ConsumerInterceptor Sub-task Open johndoe
          31.
          AsyncKafkaConsumer should retry commits on the application thread instead of auto-retry Sub-task Open Kirk True
          32.
          Refactor AsyncKafkaConsumer shutdown Sub-task Open Unassigned

          Activity

            People

              pnee Philip Nee
              pnee Philip Nee
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - 528h
                  528h
                  Remaining:
                  Remaining Estimate - 528h
                  528h
                  Logged:
                  Time Spent - Not Specified
                  Not Specified