DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
...
| Code Block |
|---|
| Name | `share.coordinator.snapshot.update.records.per.snapshot` | | Type | `INT` | | Default | `500` | | Validator | `between(200, 1000)` (changed) | | Importance | `MEDIUM` | | Doc | "The number of update records the share coordinator writes between snapshot records, applied as a ceiling across all share groups on this broker. Must be in `[200, 1000]`. May be overridden per group via the `share.snapshot.update.records.per.snapshot` group config; per-group values are clamped to this ceiling." | |
The floor value moves from 0 to 200, to disallow values that waste disk by writing too many full snapshots.
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 lower bound of `0` is preserved for backwards compatibility. The semantics of `0` ("snapshot every write") are documented but otherwise unchanged. Disallowing `0` is explicitly out of scope (see *Rejected Alternatives*).
2. New per-group dynamic config: `shareshare.snapshot.update.records.per.snapshot`snapshot
A new entry on `ConfigResourceConfigResource.Type.GROUP`GROUP, set via `AdminClient.incrementalAlterConfigs` like any other share-group dynamic config (modeled on `share.record.lock.duration.ms`).| **Name** | AdminClient.incrementalAlterConfigs.
| 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." | |
...
3. Java constants
`ShareCoordinatorConfig.java` already exposes `SNAPSHOT_UPDATE_RECORDS_PER_SNAPSHOT_CONFIG`. The new per-group constant lives in `GroupConfig.java`:
...