Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Rename executor config and metrics to "background"

...

As we will be making heavier use of the group coordinator executor, we will add a new group.coordinator.executorbackground.threads config option to control the number of threads in the executor. Currently, the group coordinator executor only has a single thread. We will default the new config option to 2 threads, to reduce contention when multiple groups want to run assignors at the same time. We will also add thread idle ratio, queue and processing time metrics for the executor, analogous to the existing thread-idle-ratio-avg, event-queue-time-ms and event-processing-time-ms metrics.

...

  • The idle ratio of the executor thread pool, analogous to the event processor's thread-idle-ratio-avg metric.
    • kafka.server:type=group-coordinator-metrics,name=executorbackground-thread-idle-ratio-avg
  • The queue time of tasks in the group coordinator executor.
    • kafka.server:type=group-coordinator-metrics,name=executorbackground-queue-time-ms-p50
    • kafka.server:type=group-coordinator-metrics,name=executorbackground-queue-time-ms-p95
    • kafka.server:type=group-coordinator-metrics,name=executorbackground-queue-time-ms-p99
    • kafka.server:type=group-coordinator-metrics,name=executorbackground-queue-time-ms-p999
    • kafka.server:type=group-coordinator-metrics,name=executorbackground-queue-time-ms-max
  • The processing time of tasks in the group coordinator executor.
    • kafka.server:type=group-coordinator-metrics,name=executorbackground-processing-time-ms-p50
    • kafka.server:type=group-coordinator-metrics,name=executorbackground-processing-time-ms-p95
    • kafka.server:type=group-coordinator-metrics,name=executorbackground-processing-time-ms-p99
    • kafka.server:type=group-coordinator-metrics,name=executorbackground-processing-time-ms-p999
    • kafka.server:type=group-coordinator-metrics,name=executorbackground-processing-time-ms-max

Although the share coordinator shares the same coordinator runtime and metrics code as the group coordinator, we intentionally avoid adding the same executor metrics to the share coordinator as its executor is currently unused.

...

We also add a group.coordinator.executorbackground.threads config option to control the number of threads in the group coordinator executor, since it may be used for running assignors going forward. Currently, the group coordinator executor only has a single thread. We will default this config option to 2 threads, to reduce contention when multiple groups want to run assignors at the same time. This config option will not be dynamic.

...

NameType"Previous" ValueDefaultDoc
group.coordinator.executorbackground.threadsint12The number of executor threads used by the group coordinator for processing background tasks (e.g. updating regular expression subscriptions and offloaded assignments).
group.consumer.assignment.interval.msint0 ms1,000 msThe interval between assignment updates for a consumer group.
group.share.assignment.interval.msint0 ms1,000 msThe interval between assignment updates for a share group.
group.streams.assignment.interval.msint0 ms1,000 msThe interval between assignment updates for a streams group.
group.consumer.min.assignment.interval.msint-0 msThe minimum interval between assignment updates for a consumer group.
group.share.min.assignment.interval.msint-0 msThe minimum interval between assignment updates for a share group.
group.streams.min.assignment.interval.msint-0 msThe minimum interval between assignment updates for a streams group.
group.consumer.max.assignment.interval.msint-15,000 msThe maximum interval between assignment updates for a consumer group.
group.share.max.assignment.interval.msint-15,000 msThe maximum interval between assignment updates for a share group.
group.streams.max.assignment.interval.msint-15,000 msThe maximum interval between assignment updates for a streams group.
group.consumer.assignor.offload.enableboolfalsetrueWhether to offload consumer group assignment to a group coordinator executor threadbackground thread.
group.share.assignor.offload.enableboolfalsetrueWhether to offload share group assignment to a group coordinator executor background thread.
group.streams.assignor.offload.enableboolfalsetrueWhether to offload streams group assignment to a group coordinator executor background thread.

Group Configurations

...

NameTypeDefaultDoc
consumer.assignment.interval.msint-1The interval between assignment updates for a consumer group.
share.assignment.interval.msint-1The interval between assignment updates for a share group.
streams.assignment.interval.msint-1The interval between assignment updates for a streams group.
consumer.assignor.offload.enableboolnot setWhether to offload consumer group assignment to a group coordinator executor background thread.
share.assignor.offload.enableboolnot setWhether to offload share group assignment to a group coordinator executor background thread.
streams.assignor.offload.enableboolnot setWhether to offload streams group assignment to a group coordinator executor background thread.

KRPC

ConsumerGroupHeartbeat API

...