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

Add a separate controller messge queue with higher priority on broker side

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • None
    • None
    • None
    • None

    Description

      This ticket is supposed to be working together with KAFKA-2029.
      There are two issues with current controller to broker messages.
      1. On the controller side the message are sent without synchronization.
      2. On broker side the controller messages share the same queue as client messages.
      The problem here is that brokers process the controller messages for the same partition at different times and the variation could be big. This causes unnecessary data loss and prolong the preferred leader election / controlled shutdown/ partition reassignment, etc.
      KAFKA-2029 was trying to add a boundary between messages for different partitions. For example, before leader migration for previous partition finishes, the leader migration for next partition won't begin.
      This ticket is trying to let broker process controller messages faster. So the idea is have separate queue to hold controller messages, if there are controller messages, KafkaApi thread will first take care of those messages, otherwise it will proceed messages from clients.
      Those two tickets are not ultimate solution to current controller problems, but just mitigate them with minor code changes. Moving forward, we still need to think about rewriting controller in a cleaner way.

      Attachments

        Issue Links

          Activity

            People

              becket_qin Jiangjie Qin
              becket_qin Jiangjie Qin
              Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: