Versions Compared

Key

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

...


Note : There is another config share.coordinator.cold.partition.snapshot.interval.ms (default 5 mins) which forces snapshotting on a timely basis, but only for share partitions with no updates. So the old log recs of the idle groups would be eligible for cleanup.

Public Interfaces

Updated broker-level config

  • : share.coordinator.snapshot.update.records.per.snapshot

...

At very low values, every small state change triggers a full ShareSnapshot instead of a small ShareUpdate, so most of what gets written to the log is large snapshot records. This is a behavior break for any cluster currently set below 200 (including the documented value `0`); See the Migration Plan section which is required before upgrading.

New per-group dynamic config

  • : share.snapshot.update.records.per.snapshot

...

Code Block
| Name | share.snapshot.update.records.per.snapshot |
| Type | INT |
| Default | _unset_ — falls back to share.coordinator.snapshot.update.records.per.snapshot |
| Validator | between(200, broker_value) enforced at apply time; static between(200, 1000) for the ConfigDef itself |
| Importance | MEDIUM |
| Doc | "Number of update records the share coordinator writes between snapshot records for this share group. Must be in [200, broker_ceiling], where broker_ceiling is the current value of share.coordinator.snapshot.update.records.per.snapshot. If unset, the broker-level value is used." |

Java constants

ShareCoordinatorConfig.java already exposes `SNAPSHOT_UPDATE_RECORDS_PER_SNAPSHOT_CONFIG`. The new per-group constant lives in `GroupConfig.java`:

...