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

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


The following commit(s) were added to refs/heads/guonengtest by this push:
     new ea0cac2afb fix sync latch bug
ea0cac2afb is described below

commit ea0cac2afb58ea0643b0b36ce27c72974c8b8343
Author: Jinrui.Zhang <[email protected]>
AuthorDate: Tue Apr 18 12:30:49 2023 +0800

    fix sync latch bug
---
 .../src/main/java/org/apache/iotdb/ReadTest.java   |  15 +-
 .../src/main/java/org/apache/iotdb/WriterTest.java |  16 +-
 example/session/src/main/resources/logback.xml     | 265 +--------------------
 3 files changed, 14 insertions(+), 282 deletions(-)

diff --git a/example/session/src/main/java/org/apache/iotdb/ReadTest.java 
b/example/session/src/main/java/org/apache/iotdb/ReadTest.java
index e0f7b6ffca..829eb5168f 100644
--- a/example/session/src/main/java/org/apache/iotdb/ReadTest.java
+++ b/example/session/src/main/java/org/apache/iotdb/ReadTest.java
@@ -103,11 +103,12 @@ public class ReadTest {
       }
     }
 
-    protected void finishRead(long cost) throws InterruptedException {
+    protected void finishReadAndWait(long cost) throws InterruptedException {
+      CountDownLatch currentLatch = latch;
       totalCost += cost;
       synchronized (this) {
-        latch.countDown();
-        if (latch.getCount() == 0) {
+        currentLatch.countDown();
+        if (currentLatch.getCount() == 0) {
           needResetLatch = true;
           long totalCost = (System.nanoTime() - currentTimestamp);
           LOGGER.info(
@@ -122,10 +123,7 @@ public class ReadTest {
           }
         }
       }
-    }
-
-    protected void waitCurrentLoopFinished() throws InterruptedException {
-      latch.await();
+      currentLatch.await();
     }
   }
 
@@ -205,8 +203,7 @@ public class ReadTest {
           long startTime = System.nanoTime();
           executeQuery();
           long cost = System.nanoTime() - startTime;
-          signal.finishRead(cost);
-          signal.waitCurrentLoopFinished();
+          signal.finishReadAndWait(cost);
         } catch (InterruptedException | IoTDBConnectionException | 
StatementExecutionException e) {
           throw new RuntimeException(e);
         }
diff --git a/example/session/src/main/java/org/apache/iotdb/WriterTest.java 
b/example/session/src/main/java/org/apache/iotdb/WriterTest.java
index b7fb52831c..ac12b5a67f 100644
--- a/example/session/src/main/java/org/apache/iotdb/WriterTest.java
+++ b/example/session/src/main/java/org/apache/iotdb/WriterTest.java
@@ -97,10 +97,11 @@ public class WriterTest {
       }
     }
 
-    protected void finishInsert() {
+    protected void finishInsertAndWait() throws InterruptedException {
+      CountDownLatch currentLatch = latch;
       synchronized (this) {
-        latch.countDown();
-        if (latch.getCount() == 0) {
+        currentLatch.countDown();
+        if (currentLatch.getCount() == 0) {
           needResetLatch = true;
           LOGGER.info(
               "one loop finished. cost: {}ms. total rows: {}",
@@ -108,10 +109,7 @@ public class WriterTest {
               totalRowNumber.get());
         }
       }
-    }
-
-    protected void waitCurrentLoopFinished() throws InterruptedException {
-      latch.await();
+      currentLatch.await();
     }
   }
 
@@ -131,12 +129,12 @@ public class WriterTest {
         try {
           int insertDeviceCount = insertRecords(index, 
signal.currentTimestamp);
           totalRowNumber.addAndGet(insertDeviceCount);
-          signal.finishInsert();
-          signal.waitCurrentLoopFinished();
+          signal.finishInsertAndWait();
         } catch (Exception e) {
           LOGGER.error("insert error. Thread: {}. Error:", index, e);
         }
       }
+      LOGGER.info("insert worker finished");
     }
   }
 
diff --git a/example/session/src/main/resources/logback.xml 
b/example/session/src/main/resources/logback.xml
index 4f7373e1c2..632499e6df 100644
--- a/example/session/src/main/resources/logback.xml
+++ b/example/session/src/main/resources/logback.xml
@@ -23,101 +23,6 @@
     <jmxConfigurator/>
     <!-- prevent logback from outputting its own status at the start of every 
log -->
     <statusListener class="ch.qos.logback.core.status.NopStatusListener"/>
-    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" 
name="FILEERROR">
-        <file>${IOTDB_HOME}/logs/log_datanode_error.log</file>
-        <rollingPolicy 
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            
<fileNamePattern>${IOTDB_HOME}/logs/log-datanode-error-%d{yyyyMMdd}.%i.log.gz</fileNamePattern>
-            <maxFileSize>10MB</maxFileSize>
-            <maxHistory>168</maxHistory>
-            <totalSizeCap>512MB</totalSizeCap>
-        </rollingPolicy>
-        <append>true</append>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <pattern>%d [%t] %-5p %C{25}:%L - %m %n</pattern>
-            <charset>utf-8</charset>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>error</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" 
name="FILEWARN">
-        <file>${IOTDB_HOME}/logs/log_datanode_warn.log</file>
-        <rollingPolicy 
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            
<fileNamePattern>${IOTDB_HOME}/logs/log-datanode-warn-%d{yyyyMMdd}.%i.log.gz</fileNamePattern>
-            <maxFileSize>10MB</maxFileSize>
-            <maxHistory>168</maxHistory>
-            <totalSizeCap>512MB</totalSizeCap>
-        </rollingPolicy>
-        <append>true</append>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <pattern>%d [%t] %-5p %C{25}:%L - %m %n</pattern>
-            <charset>utf-8</charset>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>WARN</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" 
name="FILEINFO">
-        <file>${IOTDB_HOME}/logs/log_datanode_info.log</file>
-        <rollingPolicy 
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            
<fileNamePattern>${IOTDB_HOME}/logs/log-datanode-info-%d{yyyyMMdd}.%i.log.gz</fileNamePattern>
-            <maxFileSize>50MB</maxFileSize>
-            <maxHistory>168</maxHistory>
-            <totalSizeCap>5GB</totalSizeCap>
-        </rollingPolicy>
-        <append>true</append>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <pattern>%d [%t] %-5p %C{25}:%L - %m %n</pattern>
-            <charset>utf-8</charset>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>INFO</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" 
name="FILEDEBUG">
-        <file>${IOTDB_HOME}/logs/log_datanode_debug.log</file>
-        <rollingPolicy 
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            
<fileNamePattern>${IOTDB_HOME}/logs/log-datanode-debug-%d{yyyyMMdd}.%i.log.gz</fileNamePattern>
-            <maxFileSize>50MB</maxFileSize>
-            <maxHistory>168</maxHistory>
-            <totalSizeCap>5GB</totalSizeCap>
-        </rollingPolicy>
-        <append>true</append>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <pattern>%d [%t] %-5p %C{25}:%L - %m %n</pattern>
-            <charset>utf-8</charset>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>DEBUG</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" 
name="FILETRACE">
-        <file>${IOTDB_HOME}/logs/log_datanode_trace.log</file>
-        <rollingPolicy 
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            
<fileNamePattern>${IOTDB_HOME}/logs/log-datanode-trace-%d{yyyyMMdd}.%i.log.gz</fileNamePattern>
-            <maxFileSize>50MB</maxFileSize>
-            <maxHistory>168</maxHistory>
-            <totalSizeCap>5GB</totalSizeCap>
-        </rollingPolicy>
-        <append>true</append>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <pattern>%d [%t] %-5p %C{25}:%L - %m %n</pattern>
-            <charset>utf-8</charset>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>TRACE</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
     <appender class="ch.qos.logback.core.ConsoleAppender" name="stdout">
         <Target>System.out</Target>
         <encoder>
@@ -128,175 +33,7 @@
             <level>${CONSOLE_LOG_LEVEL:-DEBUG}</level>
         </filter>
     </appender>
-    <!-- a log appender that collect all log records whose level is greater 
than debug-->
-    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" 
name="FILEALL">
-        <file>${IOTDB_HOME}/logs/log_datanode_all.log</file>
-        <rollingPolicy 
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            
<fileNamePattern>${IOTDB_HOME}/logs/log-datanode-all-%d{yyyyMMdd}.%i.log.gz</fileNamePattern>
-            <maxFileSize>50MB</maxFileSize>
-            <maxHistory>168</maxHistory>
-            <totalSizeCap>5GB</totalSizeCap>
-        </rollingPolicy>
-        <append>true</append>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <pattern>%d [%t] %-5p %C{25}:%L - %m %n</pattern>
-            <charset>utf-8</charset>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>INFO</level>
-        </filter>
-    </appender>
-    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" 
name="FILE_COST_MEASURE">
-        <file>${IOTDB_HOME}/logs/log_datanode_measure.log</file>
-        <rollingPolicy 
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            
<fileNamePattern>${IOTDB_HOME}/logs/log-datanode-measure-%d{yyyyMMdd}.%i.log.gz</fileNamePattern>
-            <maxFileSize>10MB</maxFileSize>
-            <maxHistory>168</maxHistory>
-            <totalSizeCap>512MB</totalSizeCap>
-        </rollingPolicy>
-        <append>true</append>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <pattern>%d [%t] %-5p %C{25}:%L - %m %n</pattern>
-            <charset>utf-8</charset>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>INFO</level>
-        </filter>
-    </appender>
-    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" 
name="SYNC">
-        <file>${IOTDB_HOME}/logs/log_datanode_sync.log</file>
-        <rollingPolicy 
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            
<fileNamePattern>${IOTDB_HOME}/logs/log-datanode-sync-%d{yyyyMMdd}.%i.log.gz</fileNamePattern>
-            <maxFileSize>10MB</maxFileSize>
-            <maxHistory>168</maxHistory>
-            <totalSizeCap>512MB</totalSizeCap>
-        </rollingPolicy>
-        <append>true</append>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <pattern>%d [%t] %-5p %C{25}:%L - %m %n</pattern>
-            <charset>utf-8</charset>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>INFO</level>
-        </filter>
-    </appender>
-    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" 
name="AUDIT">
-        <file>${IOTDB_HOME}/logs/log_datanode_audit.log</file>
-        <rollingPolicy 
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            
<fileNamePattern>${IOTDB_HOME}/logs/log-datanode-audit-%d{yyyyMMdd}.%i.log.gz</fileNamePattern>
-            <maxFileSize>10MB</maxFileSize>
-            <maxHistory>168</maxHistory>
-            <totalSizeCap>512MB</totalSizeCap>
-        </rollingPolicy>
-        <append>true</append>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <pattern>%d [%t] %-5p %C{25}:%L - %m %n</pattern>
-            <charset>utf-8</charset>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>INFO</level>
-        </filter>
-    </appender>
-    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" 
name="QUERY_DEBUG">
-        <file>${IOTDB_HOME}/logs/log_datanode_query_debug.log</file>
-        <rollingPolicy 
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            
<fileNamePattern>${IOTDB_HOME}/logs/log-datanode-query-debug-%d{yyyyMMdd}.%i.log.gz</fileNamePattern>
-            <maxFileSize>10MB</maxFileSize>
-            <maxHistory>168</maxHistory>
-            <totalSizeCap>512MB</totalSizeCap>
-        </rollingPolicy>
-        <append>true</append>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <pattern>%d [%t] %-5p %C{25}:%L - %m %n</pattern>
-            <charset>utf-8</charset>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>INFO</level>
-        </filter>
-    </appender>
-    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" 
name="SLOW_SQL">
-        <file>${IOTDB_HOME}/logs/log_datanode_slow_sql.log</file>
-        <rollingPolicy 
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            
<fileNamePattern>${IOTDB_HOME}/logs/log-datanode-slow-sql-%d{yyyyMMdd}.%i.log.gz</fileNamePattern>
-            <maxFileSize>10MB</maxFileSize>
-            <maxHistory>168</maxHistory>
-            <totalSizeCap>512MB</totalSizeCap>
-        </rollingPolicy>
-        <append>true</append>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <pattern>%d [%t] %-5p %C{25}:%L - %m %n</pattern>
-            <charset>utf-8</charset>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>INFO</level>
-        </filter>
-    </appender>
-    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" 
name="QUERY_FREQUENCY">
-        <file>${IOTDB_HOME}/logs/log_datanode_query_frequency.log</file>
-        <rollingPolicy 
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            
<fileNamePattern>${IOTDB_HOME}/logs/log-datanode-query-frequency-%d{yyyyMMdd}.%i.log.gz</fileNamePattern>
-            <maxFileSize>10MB</maxFileSize>
-            <maxHistory>168</maxHistory>
-            <totalSizeCap>512MB</totalSizeCap>
-        </rollingPolicy>
-        <append>true</append>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <pattern>%d [%t] %-5p %C{25}:%L - %m %n</pattern>
-            <charset>utf-8</charset>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>INFO</level>
-        </filter>
-    </appender>
-    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" 
name="COMPACTION">
-        <file>${IOTDB_HOME}/logs/log_datanode_compaction.log</file>
-        <rollingPolicy 
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            
<fileNamePattern>${IOTDB_HOME}/logs/log-datanode-compaction-%d{yyyyMMdd}.%i.log.gz</fileNamePattern>
-            <maxFileSize>10MB</maxFileSize>
-            <maxHistory>168</maxHistory>
-            <totalSizeCap>512MB</totalSizeCap>
-        </rollingPolicy>
-        <append>true</append>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <pattern>%d [%t] %-5p %C{25}:%L - %m %n</pattern>
-            <charset>utf-8</charset>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>INFO</level>
-        </filter>
-    </appender>
-    <root level="info">
-        <appender-ref ref="FILETRACE"/>
-        <appender-ref ref="FILEDEBUG"/>
-        <appender-ref ref="FILEWARN"/>
-        <appender-ref ref="FILEERROR"/>
-        <appender-ref ref="FILEINFO"/>
-        <appender-ref ref="FILEALL"/>
+    <root level="INFO">
         <appender-ref ref="stdout"/>
     </root>
-    <logger level="OFF" name="io.moquette.broker.metrics.MQTTMessageLogger"/>
-    <logger level="info" name="org.apache.iotdb.db.service"/>
-    <logger level="info" name="org.apache.iotdb.db.conf"/>
-    <logger level="info" name="org.apache.iotdb.db.cost.statistic">
-        <appender-ref ref="FILE_COST_MEASURE"/>
-    </logger>
-    <logger level="info" name="org.apache.iotdb.db.sync">
-        <appender-ref ref="SYNC"/>
-    </logger>
-    <logger level="info" name="IoTDB_AUDIT_LOGGER">
-        <appender-ref ref="AUDIT"/>
-    </logger>
-    <logger level="info" name="QUERY_DEBUG">
-        <appender-ref ref="QUERY_DEBUG"/>
-    </logger>
-    <logger level="info" name="SLOW_SQL">
-        <appender-ref ref="SLOW_SQL"/>
-    </logger>
-    <logger level="info" name="QUERY_FREQUENCY">
-        <appender-ref ref="QUERY_FREQUENCY"/>
-    </logger>
-    <logger level="info" name="DETAILED_FAILURE_QUERY_TRACE"/>
-    <logger level="info" name="COMPACTION">
-        <appender-ref ref="COMPACTION"/>
-    </logger>
 </configuration>

Reply via email to