This is an automated email from the ASF dual-hosted git repository.

technoboy pushed a commit to branch branch-2.11
in repository https://gitbox.apache.org/repos/asf/pulsar.git

commit 76b6e30b7b7933c236a75cdd16664bc3e943683a
Author: thetumbled <52550727+thetumb...@users.noreply.github.com>
AuthorDate: Wed May 31 14:34:32 2023 +0800

    [fix] [broker] do not filter system topic while shedding. (#18949)
    
    
    ### Motivation
    
    Currently, topics/bundles in `pulsar/system` will be filter while doing 
shedding, which is introduced by mistake by pr 
https://github.com/apache/pulsar/pull/15252.
    But we need to unload topics/bundles in `pulsar/system` for load balancing.
    
    ### Modifications
    
    do not filter topics/bundles in `pulsar/system`.
---
 .../java/org/apache/pulsar/broker/loadbalance/LoadData.java   |  2 +-
 .../org/apache/pulsar/broker/namespace/NamespaceService.java  | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/LoadData.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/LoadData.java
index 066b656a9dd..5b7875078d9 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/LoadData.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/LoadData.java
@@ -64,7 +64,7 @@ public class LoadData {
 
     public Map<String, BundleData> getBundleDataForLoadShedding() {
         return bundleData.entrySet().stream()
-                .filter(e -> !NamespaceService.isSystemServiceNamespace(
+                .filter(e -> !NamespaceService.filterNamespaceForShedding(
                         NamespaceBundle.getBundleNamespace(e.getKey())))
                 .collect(Collectors.toMap(Map.Entry::getKey, 
Map.Entry::getValue));
     }
diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/namespace/NamespaceService.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/namespace/NamespaceService.java
index 4b2df9c5487..5c288af7b8a 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/namespace/NamespaceService.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/namespace/NamespaceService.java
@@ -1408,6 +1408,17 @@ public class NamespaceService implements AutoCloseable {
                 || HEARTBEAT_NAMESPACE_PATTERN_V2.matcher(namespace).matches();
     }
 
+    /**
+     * used for filtering bundles in special namespace.
+     * @param namespace
+     * @return True if namespace is HEARTBEAT_NAMESPACE or SLA_NAMESPACE
+     */
+    public static boolean filterNamespaceForShedding(String namespace) {
+        return SLA_NAMESPACE_PATTERN.matcher(namespace).matches()
+                || HEARTBEAT_NAMESPACE_PATTERN.matcher(namespace).matches()
+                || HEARTBEAT_NAMESPACE_PATTERN_V2.matcher(namespace).matches();
+    }
+
     public static boolean isHeartbeatNamespace(ServiceUnitId ns) {
         String namespace = ns.getNamespaceObject().toString();
         return HEARTBEAT_NAMESPACE_PATTERN.matcher(namespace).matches()

Reply via email to