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/27 06:48:38 UTC

[incubator-iotdb] 01/01: add show dynamic parameters

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

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

commit 466080227aa472f176e40c2d24977fe72de7e931
Author: lta <li...@163.com>
AuthorDate: Sat Jul 27 14:48:19 2019 +0800

    add show dynamic parameters
---
 .../org/apache/iotdb/db/conf/IoTDBConstant.java    |  2 ++
 .../iotdb/db/conf/adapter/CompressionRatio.java    |  2 +-
 .../db/conf/adapter/IoTDBConfigDynamicAdapter.java |  2 +-
 .../org/apache/iotdb/db/service/TSServiceImpl.java | 33 +++++++++++++++++++++-
 4 files changed, 36 insertions(+), 3 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
index 383a350..3ea1621 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
@@ -59,6 +59,8 @@ public class IoTDBConstant {
 
   public static final String SHOW_FLUSH_TASK_INFO = "show\\s+flush\\s+task\\s+info";
 
+  public static final String SHOW_DYNAMIC_PARAMETERS = "show\\s+dynamic\\s+parameters";
+
   public static final String ROLE = "Role";
   public static final String USER = "User";
   public static final String PRIVILEGE = "Privilege";
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/adapter/CompressionRatio.java b/server/src/main/java/org/apache/iotdb/db/conf/adapter/CompressionRatio.java
index d7a00ac..389076c 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/adapter/CompressionRatio.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/adapter/CompressionRatio.java
@@ -95,7 +95,7 @@ public class CompressionRatio {
   /**
    * Get the average compression ratio for all closed files
    */
-  synchronized double getRatio() {
+  public synchronized double getRatio() {
     return calcTimes == 0 ? DEFAULT_COMPRESSION_RATIO : compressionRatioSum / calcTimes;
   }
 
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/adapter/IoTDBConfigDynamicAdapter.java b/server/src/main/java/org/apache/iotdb/db/conf/adapter/IoTDBConfigDynamicAdapter.java
index d80ad02..2ceaa0f 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/adapter/IoTDBConfigDynamicAdapter.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/adapter/IoTDBConfigDynamicAdapter.java
@@ -241,7 +241,7 @@ public class IoTDBConfigDynamicAdapter implements IDynamicAdapter {
     return currentMemTableSize;
   }
 
-  int getTotalTimeseries() {
+  public int getTotalTimeseries() {
     return totalTimeseries;
   }
 
diff --git a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
index d6fd4a6..23f2d67 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
@@ -42,6 +42,8 @@ import org.apache.iotdb.db.auth.authorizer.LocalFileAuthorizer;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.db.conf.adapter.CompressionRatio;
+import org.apache.iotdb.db.conf.adapter.IoTDBConfigDynamicAdapter;
 import org.apache.iotdb.db.cost.statistic.Measurement;
 import org.apache.iotdb.db.cost.statistic.Operation;
 import org.apache.iotdb.db.engine.StorageEngine;
@@ -499,6 +501,20 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
         return getTSExecuteStatementResp(TS_StatusCode.SUCCESS_WITH_INFO_STATUS, msg);
       }
 
+      if (execShowDynamicParameters(statement)) {
+        String msg = String.format(
+            "Memtable size threshold: %dB , Memtable number: %d , Tsfile size threshold: %dB , Compression ratio: %f ,"
+                + "Storage group number: %d , Timeseries number: %d, Maximal timeseries number among storage groups: %d",
+            IoTDBDescriptor.getInstance().getConfig().getMemtableSizeThreshold(),
+            IoTDBDescriptor.getInstance().getConfig().getMaxMemtableNumber(),
+            IoTDBDescriptor.getInstance().getConfig().getTsFileSizeThreshold(),
+            CompressionRatio.getInstance().getRatio(),
+            MManager.getInstance().getAllStorageGroup().size(),
+            IoTDBConfigDynamicAdapter.getInstance().getTotalTimeseries(),
+            MManager.getInstance().getMaximalSeriesNumberAmongStorageGroups());
+        return getTSExecuteStatementResp(TS_StatusCode.SUCCESS_WITH_INFO_STATUS, msg);
+      }
+
       if (execSetConsistencyLevel(statement)) {
         return getTSExecuteStatementResp(TS_StatusCode.SUCCESS_WITH_INFO_STATUS,
             "Execute set consistency level successfully");
@@ -522,7 +538,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
   }
 
   /**
-   * Set consistency level
+   * Show flush info
    */
   private boolean execShowFlushInfo(String statement) {
     if (statement == null) {
@@ -537,6 +553,21 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
   }
 
   /**
+   * Show dynamic parameters
+   */
+  private boolean execShowDynamicParameters(String statement) {
+    if (statement == null) {
+      return false;
+    }
+    statement = statement.toLowerCase().trim();
+    if (Pattern.matches(IoTDBConstant.SHOW_DYNAMIC_PARAMETERS, statement)) {
+      return true;
+    } else {
+      return false;
+    }
+  }
+
+  /**
    * Set consistency level
    */
   private boolean execSetConsistencyLevel(String statement) throws SQLException {