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));
     }