Status

Current state: Accepted

Discussion thread: here

Voting thread: here

JIRA: here

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

Motivation

While working on the new group coordinator backing KIP-848, we found out about the offsets.commit.required.acks config. Its documentation says that its default value (-1) should never be overridden. It is also worth mentioning that whenever set to something different than -1, the current implementation does not respect the semantic of high watermark, like a regular consumer does. So for instance, if 1 is used, the coordinator writes to the leader and then directly materialize the offset to the cache. We suppose that it was implemented this way to ensure that the last received offsets are directly available for next offset fetch requests. Note that this is also wrongly used when writing group metadata (rebalance) to the log. This guarantee provided by the non default configurations are weak and inconsistent. As there are no known use cases where it should be, we propose to simply remove it.

Public Interfaces

None.

Proposed Changes

  • Deprecate offsets.commit.required.acks in 3.8. As usually, the broker will log a warning if the configuration is used.
  • Remove offsets.commit.required.acks in 4.0.

Compatibility, Deprecation, and Migration Plan

  • If anyone uses this configuration, it would transparently moved to using the default (-1). As a side effect, we suppose that it could have a slightly impact on performance.

Rejected Alternatives

  • The alternative would be to keep it.
  • No labels