You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by lt...@apache.org on 2019/07/22 05:41:08 UTC

[incubator-iotdb] branch master updated (250dc0b -> 60ab6dc)

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

lta pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git.


    from 250dc0b  replace two methods with constant value for readability
     new 85b0b86  accelerate cal mem
     new 60ab6dc  format annotation

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../iotdb/db/tools/MemEst/MemEstToolCmd.java       | 36 ++++++++++++++++------
 1 file changed, 27 insertions(+), 9 deletions(-)


[incubator-iotdb] 02/02: format annotation

Posted by lt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lta pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit 60ab6dcbfe8aad583f46d609394310fb0f350ac1
Author: lta <li...@163.com>
AuthorDate: Mon Jul 22 13:28:30 2019 +0800

    format annotation
---
 iotdb/src/main/java/org/apache/iotdb/db/tools/MemEst/MemEstToolCmd.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/iotdb/src/main/java/org/apache/iotdb/db/tools/MemEst/MemEstToolCmd.java b/iotdb/src/main/java/org/apache/iotdb/db/tools/MemEst/MemEstToolCmd.java
index 75cedf5..9c5d96d 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/tools/MemEst/MemEstToolCmd.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/tools/MemEst/MemEstToolCmd.java
@@ -55,7 +55,7 @@ public class MemEstToolCmd implements Runnable {
     long tsNum = Long.parseLong(tsNumString);
     long maxTsNum = Long.parseLong(maxTsNumString);
 
-    //
+    // tool parameters
     long stepMemory = calStepMemory(tsNum) * IoTDBConstant.GB;
     long currentMemory = stepMemory;
     long maxTsNumValid = maxTsNum;


[incubator-iotdb] 01/02: accelerate cal mem

Posted by lt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lta pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit 85b0b8610c35357f81288e2e9824c0dd3ccf7b9b
Author: lta <li...@163.com>
AuthorDate: Sat Jul 20 16:51:10 2019 +0800

    accelerate cal mem
---
 .../iotdb/db/tools/MemEst/MemEstToolCmd.java       | 36 ++++++++++++++++------
 1 file changed, 27 insertions(+), 9 deletions(-)

diff --git a/iotdb/src/main/java/org/apache/iotdb/db/tools/MemEst/MemEstToolCmd.java b/iotdb/src/main/java/org/apache/iotdb/db/tools/MemEst/MemEstToolCmd.java
index 9f7977b..75cedf5 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/tools/MemEst/MemEstToolCmd.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/tools/MemEst/MemEstToolCmd.java
@@ -20,7 +20,6 @@ package org.apache.iotdb.db.tools.MemEst;
 
 import io.airlift.airline.Command;
 import io.airlift.airline.Option;
-import io.airlift.airline.OptionType;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
@@ -45,20 +44,27 @@ public class MemEstToolCmd implements Runnable {
 
   @Override
   public void run() {
+    // backup origin config parameters
     IoTDBConfig config = IoTDBDescriptor.getInstance().getConfig();
     long memTableSize = config.getMemtableSizeThreshold();
     int maxMemtableNumber = config.getMaxMemtableNumber();
     long tsFileSize = config.getTsFileSizeThreshold();
-    long memory = IoTDBConstant.GB;
+
+    // parse input parameters
     long sgNum = Long.parseLong(sgNumString);
     long tsNum = Long.parseLong(tsNumString);
     long maxTsNum = Long.parseLong(maxTsNumString);
+
+    //
+    long stepMemory = calStepMemory(tsNum) * IoTDBConstant.GB;
+    long currentMemory = stepMemory;
     long maxTsNumValid = maxTsNum;
     long maxProcess = 0;
-
+    long start = System.currentTimeMillis();
     while (true) {
-      // init parameter
-      config.setAllocateMemoryForWrite(memory);
+
+      // recover config parameter
+      config.setAllocateMemoryForWrite(currentMemory);
       config.setMemtableSizeThreshold(memTableSize);
       config.setMaxMemtableNumber(maxMemtableNumber);
       config.setTsFileSizeThreshold(tsFileSize);
@@ -74,7 +80,7 @@ public class MemEstToolCmd implements Runnable {
         }
         for (; tsCnt <= tsNum; tsCnt++) {
           IoTDBConfigDynamicAdapter.getInstance().addOrDeleteTimeSeries(1);
-          if(maxTsNum == 0){
+          if (maxTsNum == 0) {
             maxTsNumValid = tsCnt / sgNum + 1;
           } else {
             maxTsNumValid = Math.min(tsCnt, maxTsNum);
@@ -84,18 +90,30 @@ public class MemEstToolCmd implements Runnable {
         }
 
       } catch (ConfigAdjusterException e) {
-        if(sgCnt > sgNum) {
+        if (sgCnt > sgNum) {
           maxProcess = Math.max(maxProcess, tsCnt * 100 / tsNum);
           System.out
               .print(String.format("Memory estimation progress : %d%%\r", maxProcess));
         }
-        memory += IoTDBConstant.GB;
+        currentMemory += stepMemory;
         continue;
       }
       break;
     }
     System.out.println(String
-        .format("Memory for writing: %dGB, SG: %d, TS: %d, MTS: %d", memory / IoTDBConstant.GB,
+        .format("Memory for writing: %dGB, SG: %d, TS: %d, MTS: %d", currentMemory / IoTDBConstant.GB,
             sgNum, tsNum, maxTsNumValid));
+    System.out.println(String.format("Calculating memory for writing consumes: %dms",
+        (System.currentTimeMillis() - start)));
+  }
+
+  private long calStepMemory(long maxTimeseriesNumber) {
+    maxTimeseriesNumber /= 10000000;
+    int step = 1;
+    while (maxTimeseriesNumber > 0) {
+      maxTimeseriesNumber /= 10;
+      step *= 10;
+    }
+    return step;
   }
 }