Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[improve][broker] Clean up config changes without a PIP since the 4.0 LTS #24027

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

BewareMyPower
Copy link
Contributor

Add more comments to managedLedgerPersistIndividualAckAsLongArray from #23759. This config was added to keep the compatibility from 3.x or earlier so it has value to retain. 3.x users must configure it with false when upgrading to 4.0.

Documentation

  • doc
  • doc-required
  • doc-not-needed
  • doc-complete

Matching PR in forked repository

PR in forked repository:

… LTS

- Remove `managedLedgerOffloadReadThreads` from apache#24025
- Remove `managedLedgerMaxReadsInFlightPermitsAcquireTimeoutMillis` and
  `managedLedgerMaxReadsInFlightPermitsAcquireQueueSize` from apache#23901
- Remove `managedLedgerCursorResetLedgerCloseTimestampMaxClockSkewMillis` from apache#22792
The configs above only increase the complexity and are hard to configure.

Add more comments to `managedLedgerPersistIndividualAckAsLongArray` from apache#23759.
This config was added to keep the compatibility from 3.x or earlier so
it has value to retain. 3.x users must configure it with false when
upgrading to 4.0.
Copy link
Member

@lhotari lhotari left a comment

Choose a reason for hiding this comment

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

For some of the added configuration you are right that PIPs are needed.

Most configurables are settings for internal implementation details that don't need to be changed. In many cases, it will be useful if the value can be modified if a user faces an issue that could be solved by tuning the limit.

For example, #23901 introduced managedLedgerMaxReadsInFlightPermitsAcquireTimeoutMillis and managedLedgerMaxReadsInFlightPermitsAcquireQueueSize. The original feature contained a gap where the solution would never work properly when the system was under heavy load. That's the whole point of the managedLedgerMaxReadsInFlightSizeInMB solution that it adds a limit. If the limit doesn't work, that's a bug. It's not a new feature when that problem is fixed.

What is the problem that these new configs have caused to our users?
We can continue this discussion on the mailing list.

@BewareMyPower
Copy link
Contributor Author

That's the whole point of the managedLedgerMaxReadsInFlightSizeInMB solution that it adds a limit.

Just a simple question. When should users modify this config?

# When it's false, the behavior will be the same with 3.x or earlier
# Modifying this config could lose existing individual acknowledgments, so you should configure it with false when
# upgrading from 3.x to 4.0 or later if you don't want to lose these acknowledgments.
managedLedgerPersistIndividualAckAsLongArray=true
Copy link
Contributor

Choose a reason for hiding this comment

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

There is a conclusion that we will never set the default value of managedLedgerPersistIndividualAckAsLongArray to true for branch-4.0.x

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Updated

@BewareMyPower
Copy link
Contributor Author

In many cases, it will be useful if the value can be modified if a user faces an issue that could be solved by tuning the limit.

The key point is, since there are too many configurations, it's impossible for users to tune configs one by one. Back to the example of #23901, how can users realize the issue is related to the asynchronous InflightReadsLimiter?

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.

3 participants