java-topology/defects/pulsar/patch/pulsar-0007-modular-load-mgr-reap-brokers-list.patch

16 lines
1.2 KiB
Diff

# UNDF: UNDF-2026-000000692
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/ModularLoadManagerImpl.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/ModularLoadManagerImpl.java
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/ModularLoadManagerImpl.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/ModularLoadManagerImpl.java
@@ -320,7 +320,8 @@ public class ModularLoadManagerImpl implements ModularLoadManager {
// For each broker that we have a recent load report, see if they are still alive
- private void reapDeadBrokerPreallocations(List<String> aliveBrokers) {
+ private void reapDeadBrokerPreallocations(Collection<String> aliveBrokers) {
+ Set<String> aliveBrokerSet = new HashSet<>(aliveBrokers); // O(1) lookup vs O(B) per iteration
for (String broker : loadData.getBrokerData().keySet()) {
- if (!aliveBrokers.contains(broker)) {
+ if (!aliveBrokerSet.contains(broker)) {
if (log.isDebugEnabled()) {
log.debug("Broker {} appears to have stopped; now reclaiming any preallocations", broker);
}