Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Config nameTypeDefaultValid valuesImportanceDynamic update modeDescription
reassignment.max.concurrent.leader.movementsintInt.MAX[1,...]mediumcluster-wide

This new configuration would tell how many replicas of a single partition can be moved at once.

reassignment.max.concurrent.partition.movementsintInt.MAX[1,...]mediumcluster-wide

This configuration puts an upper limit on how many partition reassignments can be run concurrently. To calculate the sum of concurrent movements one can multiply this config by reassignment.max.parallel.replica.count.

reassignment.max.concurrent.replica.movementsintInt.MAX[1,...]mediumclusterper-widepartitionThis one puts an upper limit on concurrent leader replica movements. It is useful to reduce the controller burden on big reassignments.

...

We will add a field to the `ListPartitionReassignmentsResponse` protocol (added by KIP-455) that will extend the response with the current reassignment batch. We don't need to change the protocol version as long as the two KIPs are released together in the same version'll increment the API version of this protocol with this change.

Code Block
titleListPartitionReassignmentsResponse
{
  "apiKey": 46,
  "type": "response",
  "name": "ListPartitionReassignmentsResponse",
  "validVersions": "0-1",
  "fields": [
    { "name": "ThrottleTimeMs", "type": "int32", "versions": "0+",
      "about": "The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota." },
    { "name": "ErrorCode", "type": "int16", "versions": "0+",
      "about": "The top-level error code, or 0 on success." },
    { "name": "ErrorMessage", "type": "string", "versions": "0+", "nullableVersions": "0+",
      "about": "The top-level error message, or null on success." },
    { "name": "Topics", "type": "[]OngoingTopicReassignment", "versions": "0+",
      "about": "The ongoing reassignments for each topic.", "fields": [
        { "name": "Name", "type": "string", "versions": "0+",
          "about": "The topic name." },
        { "name": "Partitions", "type": "[]OngoingPartitionReassignment", "versions": "0+",
          "about": "The ongoing reassignments for each partition.", "fields": [
          { "name": "PartitionId", "type": "int32", "versions": "0+",
            "about": "The partition ID." },
          { "name": "CurrentBrokers", "type": "[]int32", "versions": "0+",
            "about": "The broker IDs which the partition is currently assigned to." },
          { "name": "TargetBrokers", "type": "[]int32", "versions": "0+",
            "about": "The broker IDs which the partition is being reassigned to." }
      ]}
    ]},
    { "name": "Topics", "type": "[]CurrentTopicReassignmentBatch", "versions": "01+",
      "about": "The currently executed reassignment batch.", "fields": [
        { "name": "Name", "type": "string", "versions": "01+",
          "about": "The topic name." },
        { "name": "Partitions", "type": "[]CurrentPartitionReassignmentBatch", "versions": "01+",
          "about": "The current reassignments for each partition.", "fields": [
          { "name": "PartitionId", "type": "int32", "versions": "01+",
            "about": "The partition ID." },
          { "name": "CurrentBrokers", "type": "[]int32", "versions": "01+",
            "about": "The broker IDs which the partition is currently assigned to." },
          { "name": "TargetBrokers", "type": "[]int32", "versions": "01+",
            "about": "The broker IDs which the partition is being reassigned to." }
      ]}
    ]}
  ]
}

...