You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by yu...@apache.org on 2022/03/23 03:24:33 UTC
[rocketmq] branch develop updated: [ISSUE #3924] It may be better to change the method StoreStatsService#initPutMessageDistributeTime() to private. (#3925)
This is an automated email from the ASF dual-hosted git repository.
yuzhou pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git
The following commit(s) were added to refs/heads/develop by this push:
new 0870a83 [ISSUE #3924] It may be better to change the method StoreStatsService#initPutMessageDistributeTime() to private. (#3925)
0870a83 is described below
commit 0870a83306d3ebbe198ccfee3bfb5cc3bf436737
Author: 彭小漪 <64...@qq.com>
AuthorDate: Wed Mar 23 11:24:17 2022 +0800
[ISSUE #3924] It may be better to change the method StoreStatsService#initPutMessageDistributeTime() to private. (#3925)
* Rename method initPutMessageDistributeTime to resetPutMessageDistributeTime.
---
.../java/org/apache/rocketmq/store/StoreStatsService.java | 14 +++++++-------
.../org/apache/rocketmq/store/StoreStatsServiceTest.java | 9 ++++++---
2 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/store/src/main/java/org/apache/rocketmq/store/StoreStatsService.java b/store/src/main/java/org/apache/rocketmq/store/StoreStatsService.java
index 512c373..a146281 100644
--- a/store/src/main/java/org/apache/rocketmq/store/StoreStatsService.java
+++ b/store/src/main/java/org/apache/rocketmq/store/StoreStatsService.java
@@ -44,7 +44,7 @@ public class StoreStatsService extends ServiceThread {
};
//The rule to define buckets
- private static final Map<Integer, Integer> PUT_MESSAGE_ENTIRE_TIME_BUCKETS = new TreeMap<>();
+ private static final Map<Integer/*interval step size*/, Integer/*times*/> PUT_MESSAGE_ENTIRE_TIME_BUCKETS = new TreeMap<>();
//buckets
private TreeMap<Long/*bucket*/, LongAdder/*times*/> buckets = new TreeMap<>();
private Map<Long/*bucket*/, LongAdder/*times*/> lastBuckets = new TreeMap<>();
@@ -90,11 +90,11 @@ public class StoreStatsService extends ServiceThread {
PUT_MESSAGE_ENTIRE_TIME_BUCKETS.put(100,5); //500-1000
PUT_MESSAGE_ENTIRE_TIME_BUCKETS.put(1000,9); //1s-10s
- this.initPutMessageTimeBuckets();
- this.initPutMessageDistributeTime();
+ this.resetPutMessageTimeBuckets();
+ this.resetPutMessageDistributeTime();
}
- public void initPutMessageTimeBuckets() {
+ private void resetPutMessageTimeBuckets() {
TreeMap<Long, LongAdder> nextBuckets = new TreeMap<>();
AtomicLong index = new AtomicLong(0);
PUT_MESSAGE_ENTIRE_TIME_BUCKETS.forEach((interval, times) -> {
@@ -142,7 +142,7 @@ public class StoreStatsService extends ServiceThread {
return result;
}
- private LongAdder[] initPutMessageDistributeTime() {
+ private LongAdder[] resetPutMessageDistributeTime() {
LongAdder[] next = new LongAdder[13];
for (int i = 0; i < next.length; i++) {
next[i] = new LongAdder();
@@ -582,7 +582,7 @@ public class StoreStatsService extends ServiceThread {
this.getGetTransferedTps(printTPSInterval)
);
- final LongAdder[] times = this.initPutMessageDistributeTime();
+ final LongAdder[] times = this.resetPutMessageDistributeTime();
if (null == times)
return;
@@ -594,7 +594,7 @@ public class StoreStatsService extends ServiceThread {
sb.append(String.format("%s:%d", PUT_MESSAGE_ENTIRE_TIME_MAX_DESC[i], value));
sb.append(" ");
}
- this.initPutMessageTimeBuckets();
+ this.resetPutMessageTimeBuckets();
this.findPutMessageEntireTimePX(0.99);
this.findPutMessageEntireTimePX(0.999);
log.info("[PAGECACHERT] TotalPut {}, PutMessageDistributeTime {}", totalPut, sb.toString());
diff --git a/store/src/test/java/org/apache/rocketmq/store/StoreStatsServiceTest.java b/store/src/test/java/org/apache/rocketmq/store/StoreStatsServiceTest.java
index 7aa17a2..8fee578 100644
--- a/store/src/test/java/org/apache/rocketmq/store/StoreStatsServiceTest.java
+++ b/store/src/test/java/org/apache/rocketmq/store/StoreStatsServiceTest.java
@@ -16,10 +16,11 @@
*/
package org.apache.rocketmq.store;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.CyclicBarrier;
-import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicReference;
import java.util.concurrent.atomic.LongAdder;
@@ -90,14 +91,16 @@ public class StoreStatsServiceTest {
}
@Test
- public void findPutMessageEntireTimePXTest() {
+ public void findPutMessageEntireTimePXTest() throws InvocationTargetException, NoSuchMethodException, IllegalAccessException {
final StoreStatsService storeStatsService = new StoreStatsService();
for (int i = 1; i <= 1000; i++) {
for (int j = 0; j < i; j++) {
storeStatsService.incPutMessageEntireTime(i);
}
}
- storeStatsService.initPutMessageTimeBuckets();
+ Method method = StoreStatsService.class.getDeclaredMethod("resetPutMessageTimeBuckets");
+ method.setAccessible(true);
+ method.invoke(storeStatsService);
System.out.println(storeStatsService.findPutMessageEntireTimePX(0.99));
System.out.println(storeStatsService.findPutMessageEntireTimePX(0.999));
}