Some of the Pulsar protocols, for example the KoP will use a system topic to store the metadata, eg: the topic‘s offset, when the bundle owner changes the topic’s data will need to be full recovered to the broker, and when unloaded, it needs to remove the broker local memory, if the topic's data were huge, it may cause slow loading.
Support setting up specific namespaces to skipping the load-shedding, for the system topics namespace, or for benchmark-relevant namespaces we better be skipping the load shedding because for system topics, if the ownership transfers to another broker, it may need to recover the data by replaying the messages, it will cause message pub/sub temporary unavailable.
RoundRobinBrokerSelector
to assign the skipped namespaces bundle.Add new configuration loadBalancerSheddingExcludedNamespaces
to the ServiceConfiguration
. While doing the load-shedding, filter out the configuration namespaces.
For shedding excluded namespaces, use RoundRobinBrokerSelector
to assign the ownership, it can make the assignment more average because these will not automatically rebalance to another broker unless manually unloaded it.
Add new configuration loadBalancerSheddingExcludedNamespaces
to the ServiceConfiguration
.
@FieldContext( dynamic = true, category = CATEGORY_LOAD_BALANCER, doc = "The namespaces skip for load shedding" ) private Set<String> loadBalancerSheddingExcludedNamespaces = new TreeSet<>();
No new metrics are added in this proposal.
No new security considerations are added in this proposal.
No changes are needed to revert to the previous version.
No other changes are needed to upgrade to the new version.
None