Demogorgon314 commented on code in PR #16552:
URL: https://github.com/apache/pulsar/pull/16552#discussion_r922926440
##########
pulsar-broker/src/test/java/org/apache/pulsar/broker/loadbalance/impl/BundleSplitterTaskTest.java:
##########
@@ -95,6 +96,61 @@ public void testSplitTaskWhenTopicJustOne() {
Assert.assertEquals(bundlesToSplit.size(), 0);
}
+ @Test
+ public void testLoadBalancerNamespaceMaximumBundles() {
+ pulsar.getConfiguration().setLoadBalancerNamespaceMaximumBundles(3);
+
+ final BundleSplitterTask bundleSplitterTask = new BundleSplitterTask();
+ LoadData loadData = new LoadData();
+
+ LocalBrokerData brokerData = new LocalBrokerData();
+ Map<String, NamespaceBundleStats> lastStats = new HashMap<>();
+ final NamespaceBundleStats namespaceBundleStats = new
NamespaceBundleStats();
+ namespaceBundleStats.topics = 5;
+ lastStats.put("ten/ns/0x00000000_0x20000000", namespaceBundleStats);
+
+ final NamespaceBundleStats namespaceBundleStats2 = new
NamespaceBundleStats();
+ namespaceBundleStats2.topics = 5;
+ lastStats.put("ten/ns/0x20000000_0x40000000", namespaceBundleStats2);
+
+ final NamespaceBundleStats namespaceBundleStats3 = new
NamespaceBundleStats();
+ namespaceBundleStats3.topics = 5;
+ lastStats.put("ten/ns/0x40000000_0x60000000", namespaceBundleStats3);
+
+ brokerData.setLastStats(lastStats);
+ loadData.getBrokerData().put("broker", new BrokerData(brokerData));
+
+ BundleData bundleData1 = new BundleData();
+ TimeAverageMessageData averageMessageData1 = new
TimeAverageMessageData();
+
averageMessageData1.setMsgRateIn(pulsar.getConfiguration().getLoadBalancerNamespaceBundleMaxMsgRate()
* 2);
+ averageMessageData1.setMsgRateOut(1);
+ bundleData1.setLongTermData(averageMessageData1);
+ loadData.getBundleData().put("ten/ns/0x00000000_0x20000000",
bundleData1);
+
+ BundleData bundleData2 = new BundleData();
+ TimeAverageMessageData averageMessageData2 = new
TimeAverageMessageData();
+
averageMessageData2.setMsgRateIn(pulsar.getConfiguration().getLoadBalancerNamespaceBundleMaxMsgRate()
* 2);
+ averageMessageData2.setMsgRateOut(1);
+ bundleData2.setLongTermData(averageMessageData2);
+ loadData.getBundleData().put("ten/ns/0x20000000_0x40000000",
bundleData2);
+
+ BundleData bundleData3 = new BundleData();
+ TimeAverageMessageData averageMessageData3 = new
TimeAverageMessageData();
+
averageMessageData3.setMsgRateIn(pulsar.getConfiguration().getLoadBalancerNamespaceBundleMaxMsgRate()
* 2);
+ averageMessageData3.setMsgRateOut(1);
+ bundleData3.setLongTermData(averageMessageData3);
+ loadData.getBundleData().put("ten/ns/0x40000000_0x60000000",
bundleData3);
+
+ try {
+ int currentBundleCount =
pulsar.getNamespaceService().getBundleCount(NamespaceName.get("ten/ns"));
+ final Set<String> bundlesToSplit =
bundleSplitterTask.findBundlesToSplit(loadData, pulsar);
+ Assert.assertEquals(bundlesToSplit.size() + currentBundleCount,
+
pulsar.getConfiguration().getLoadBalancerNamespaceMaximumBundles());
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
Review Comment:
```suggestion
int currentBundleCount =
pulsar.getNamespaceService().getBundleCount(NamespaceName.get("ten/ns"));
final Set<String> bundlesToSplit =
bundleSplitterTask.findBundlesToSplit(loadData, pulsar);
Assert.assertEquals(bundlesToSplit.size() + currentBundleCount,
pulsar.getConfiguration().getLoadBalancerNamespaceMaximumBundles());
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]