You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2022/10/19 03:36:28 UTC

[iotdb] branch master updated: [IOTDB-4683] Fix REJECT_THERSHOLD init error in SystemInfo (#7649)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 84aa99226a [IOTDB-4683] Fix REJECT_THERSHOLD init error in SystemInfo (#7649)
84aa99226a is described below

commit 84aa99226abc2a2ea6192b3d4bea9ea9fa3b6c74
Author: Haonan <hh...@outlook.com>
AuthorDate: Wed Oct 19 11:36:23 2022 +0800

    [IOTDB-4683] Fix REJECT_THERSHOLD init error in SystemInfo (#7649)
---
 .../org/apache/iotdb/db/rescon/SystemInfo.java     |  7 ++--
 .../db/engine/storagegroup/DataRegionTest.java     | 40 ++++++++++++++++++++++
 2 files changed, 45 insertions(+), 2 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/rescon/SystemInfo.java b/server/src/main/java/org/apache/iotdb/db/rescon/SystemInfo.java
index 710a523ec3..59b6defdd0 100644
--- a/server/src/main/java/org/apache/iotdb/db/rescon/SystemInfo.java
+++ b/server/src/main/java/org/apache/iotdb/db/rescon/SystemInfo.java
@@ -99,10 +99,11 @@ public class SystemInfo {
       return true;
     } else {
       logger.info(
-          "Change system to reject status. Triggered by: logical SG ({}), mem cost delta ({}), totalSgMemCost ({}).",
+          "Change system to reject status. Triggered by: logical SG ({}), mem cost delta ({}), totalSgMemCost ({}), REJECT_THERSHOLD ({})",
           dataRegionInfo.getDataRegion().getStorageGroupName(),
           delta,
-          totalStorageGroupMemCost);
+          totalStorageGroupMemCost,
+          REJECT_THERSHOLD);
       rejected = true;
       if (chooseMemTablesToMarkFlush(tsFileProcessor)) {
         if (totalStorageGroupMemCost < memorySizeForWrite) {
@@ -201,6 +202,8 @@ public class SystemInfo {
         (long) (config.getAllocateMemoryForStorageEngine() * config.getWriteProportion());
     memorySizeForCompaction =
         (long) (config.getAllocateMemoryForStorageEngine() * config.getCompactionProportion());
+    FLUSH_THERSHOLD = memorySizeForWrite * config.getFlushProportion();
+    REJECT_THERSHOLD = memorySizeForWrite * config.getRejectProportion();
   }
 
   @TestOnly
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/DataRegionTest.java b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/DataRegionTest.java
index 6542a57286..953faa31b3 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/DataRegionTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/DataRegionTest.java
@@ -695,6 +695,46 @@ public class DataRegionTest {
     config.setEnablePartition(defaultEnablePartition);
   }
 
+  @Test
+  public void testSmallReportProportionInsertRow()
+      throws WriteProcessException, QueryProcessException, IllegalPathException, IOException,
+          TriggerExecutionException, DataRegionException {
+    double defaultValue = config.getWriteMemoryVariationReportProportion();
+    config.setWriteMemoryVariationReportProportion(0);
+    DataRegion dataRegion1 = new DummyDataRegion(systemDir, "root.ln22");
+
+    for (int j = 21; j <= 30; j++) {
+      TSRecord record = new TSRecord(j, "root.ln22");
+      record.addTuple(DataPoint.getDataPoint(TSDataType.INT32, measurementId, String.valueOf(j)));
+      dataRegion1.insert(buildInsertRowNodeByTSRecord(record));
+      dataRegion1.asyncCloseAllWorkingTsFileProcessors();
+    }
+    dataRegion1.syncCloseAllWorkingTsFileProcessors();
+
+    for (TsFileProcessor tsfileProcessor : dataRegion1.getWorkUnsequenceTsFileProcessors()) {
+      tsfileProcessor.syncFlush();
+    }
+
+    QueryDataSource queryDataSource =
+        dataRegion1.query(
+            Collections.singletonList(new PartialPath("root.ln22", measurementId)),
+            "root.ln22",
+            context,
+            null,
+            null);
+    Assert.assertEquals(10, queryDataSource.getSeqResources().size());
+    Assert.assertEquals(0, queryDataSource.getUnseqResources().size());
+    for (TsFileResource resource : queryDataSource.getSeqResources()) {
+      Assert.assertTrue(resource.isClosed());
+    }
+    for (TsFileResource resource : queryDataSource.getUnseqResources()) {
+      Assert.assertTrue(resource.isClosed());
+    }
+
+    dataRegion1.syncDeleteDataFiles();
+    config.setWriteMemoryVariationReportProportion(defaultValue);
+  }
+
   @Test
   public void testMerge()
       throws WriteProcessException, QueryProcessException, IllegalPathException,