Skip to content

config/tx: have reasonable defaults for idempotency/tx configurations.#30058

Merged
bharathv merged 1 commit intoredpanda-data:devfrom
bharathv:tx_fix_defaults
Apr 6, 2026
Merged

config/tx: have reasonable defaults for idempotency/tx configurations.#30058
bharathv merged 1 commit intoredpanda-data:devfrom
bharathv:tx_fix_defaults

Conversation

@bharathv
Copy link
Copy Markdown
Contributor

@bharathv bharathv commented Apr 3, 2026

max_concurrent_producer_ids: old: int64_max new: 100k
max_transactions_per_coordinator: old: int64_max new: 10k

Neither of these changes have correctness implications. Compared to defaults, they evict unused producers more aggressively.

The new defaults are also pretty generous and probably cover most usecases.

Even if a usage falls outside these defaults, worst that could happen is old producers get evicted to make room for new producers, so the old producer may have to reinit incase of transactions and most clients are already equipped to do that and it is fully transparent to idempotent producers.

On the flip side, this avoids accumulation of a ton of producers in snapshots and such.

Upgrade considerations: if there is a non default value set, nothing changes (eg: cloud). If there was no value set, the brokers pick up the new default and may do a bunch of evictions if there are many historical producers accumulated (which is rare in most applications).

Backports Required

  • none - not a bug fix
  • none - this is a backport
  • none - issue does not exist in previous branches
  • none - papercut/not impactful enough to backport
  • v26.1.x
  • v25.3.x
  • v25.2.x

Release Notes

Improvements

  • max_concurrent_producer_ids and max_transactions_per_coordinator now default to
    100,000 and 10,000 respectively (previously unlimited), reducing memory usage from
    accumulated producer state; existing explicit overrides are unaffected.

@bharathv bharathv requested a review from a team as a code owner April 3, 2026 03:02
Copilot AI review requested due to automatic review settings April 3, 2026 03:02
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Redpanda’s transaction/idempotency-related configuration defaults to avoid effectively-unbounded producer/transaction state growth (and associated memory/snapshot bloat) when users do not explicitly set these limits.

Changes:

  • Change max_concurrent_producer_ids default from “unlimited” to 100000.
  • Change max_transactions_per_coordinator default from “unlimited” to 10000.

Comment thread src/v/config/configuration.cc Outdated
max_concurrent_producer_ids: old: int64_max new: 100k
max_transactions_per_coordinator: old: int64_max new: 10k

Neither of these changes have correctness implications. Compared to
defaults, they evict unused producers more aggressively.

The new defaults are also pretty generous and probably cover most
usecases.

Even if a usage falls outside these defaults, worst that could happen is
old producers get evicted to make room for new producers, so the old
producer may have to reinit incase of transactions and most clients are
already equipped to do that and it is fully transparent to idempotent
producers.

On the flip side, this avoids accumulation of a ton of producers in
snapshots and such.

Upgrade considerations: if there is a non default value set, nothing
changes (eg: cloud). If there was no value set, the brokers pick up the
new default and may do a bunch of evictions if there are many historical
producers accumulated (which is rare in most applications).
@bharathv bharathv merged commit fedb8f4 into redpanda-data:dev Apr 6, 2026
19 checks passed
@bharathv bharathv deleted the tx_fix_defaults branch April 6, 2026 20:02
@vbotbuildovich
Copy link
Copy Markdown
Collaborator

/backport v26.1.x

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants