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,