-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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][pip] PIP-369: Flag based selective unload on changing ns-isolation-policy #23116
Conversation
@iosdev747 Please add the following content to your PR description and select a checkbox:
|
Well written and explained. Thanks. In the initial review, I only have a few knits about improving some concepts such as the |
Thanks for the feedback. We can certainly name it |
+1. Sounds good! |
Thank you everyone for giving the feedback :) For changing the definition of I'll start a voting thread. |
minor detail: |
Discussion thread: #23094
Motivation
In Apache Pulsar 3.x, changing a namespace isolation policy results in unloading all namespace bundles that match the namespace's regular expression provided in the isolation policy.
This can be problematic for cases where the regex matches a large subset of namespaces, such as
tenant-x/.*
.One of such case is mentioned on this issue #23092 where policy change resulted in 100+ namespace bundles to get unloaded.
And broker exhausted all the available connections due to too many unload calls happening at once resulting in 5xx response.
Other issues that happens with this approach are huge latency spikes as topics are unavailable until bundles are loaded back, increasing the pending produce calls.
The only benefit this approach serves is ensuring that all the namespaces matching the policy regex will come to correct broker group.
But when namespace bundles are already on the correct broker group (according to the policy), unloading those namespaces doesn't serve any purpose.
This PIP aims to address the need to either prevent unnecessary unloading or provide a more granular approach to determine what should be unloaded.
Some of the cases covered by this PIP are discussed in #23094 by @grssam.
Does this pull request potentially affect one of the following parts:
If the box was checked, please highlight the changes
Documentation
doc
doc-required
doc-not-needed
doc-complete
Matching PR in forked repository
PR in forked repository: