Versions Compared

Key

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

...

Code Block
languagejava
public static final String SHARE_SNAPSHOT_UPDATE_RECORDS_PER_SNAPSHOT_CONFIG = "share.snapshot.update.records.per.snapshot";

Proposed Changes

Describe the new thing you want to do in appropriate detail. This may be fairly extensive and have large subsections of its own. Or it may be a few sentences. Use judgement based on the scope of the change.

### A. Raise the broker-level upper bound

1. Change broker level lower and upper bounds

share**File**: `share-coordinator/src/main/java/org/apache/kafka/coordinator/share/ShareCoordinatorConfig.java:103`

Change:

Code Block
language

...

java
.define(SNAPSHOT_UPDATE_RECORDS_PER_SNAPSHOT_CONFIG, INT,

...


        SNAPSHOT_UPDATE_RECORDS_PER_SNAPSHOT_DEFAULT,

...


        between(

...

200, 1000),

...


        MEDIUM, SNAPSHOT_UPDATE_RECORDS_PER_SNAPSHOT_

...

DOC)


2

`NEW_MAX` is set during DISCUSS once benchmark data lands (see *Test Plan*).

### B. Define the per-group config in `GroupConfig`GroupConfig

group**File**: `group-coordinator/src/main/java/org/apache/kafka/coordinator/group/GroupConfig.java`java

Add the new constant alongside existing `share.*` group-level entries (around line 60, near `SHARE_RECORD_LOCK_DURATION_MS_CONFIG`) . Register it in `CONFIG_DEF` with `Type.INT`, default sentinel (`-1` to indicate "unset"), validator `atLeast(-1)`, importance `MEDIUM`. Add a public final field and a getter mirroring the pattern used for `shareRecordLockDurationMs` (`GroupConfig.java:124`).

Validation that the group value does not exceed the broker ceiling is performed in `validate(Map<String, String> props, ShareGroupConfig defaults)` — the same hook used by other share group configs. If the requested value exceeds the broker ceiling, throw `InvalidConfigurationException` with a message naming both bounds.

...