Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-12738 Improved error handling for better at-least-once semantics and faster EOS
  3. KAFKA-12737

1. Commit all healthy tasks after a task-specific error for better task isolation

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • streams
    • None

    Description

      At the moment any time we hit the exception handler, an unclean shutdown will be triggered on that thread, which means no tasks will be committed. For certain kinds of exceptions this is unavoidable: for example if the consumer has dropped out of the group then by definition it can’t commit during shutdown, and the task will have already been reassigned to another StreamThread. However there are many common scenarios in which we can (and should) attempt to commit all the tasks which are in a clean state, ie everyone except for the task currently being processed when the exception occurred. A good example of this is de/serialization or user code errors, as well as exceptions that occur during an operation like closing or suspending a particular task. In all those cases, there’s no need to throw away all the progress that has been made by the unaffected tasks who just happened to be assigned to the same StreamThread.

      Attachments

        Activity

          People

            Unassigned Unassigned
            ableegoldman A. Sophie Blee-Goldman
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: