This is an automated email from the ASF dual-hosted git repository.
hxd pushed a commit to branch ut_close_socket
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/ut_close_socket by this push:
new 6c8380d add FileMonitor logger to monitot file open and close event
6c8380d is described below
commit 6c8380d5f8e37f412bcd426218880dafad678895
Author: xiangdong huang <[email protected]>
AuthorDate: Thu Feb 20 08:11:49 2020 +0800
add FileMonitor logger to monitot file open and close event
---
.../org/apache/iotdb/db/query/control/FileReaderManager.java | 9 +++++++--
.../main/java/org/apache/iotdb/db/service/MetricsService.java | 4 ++--
server/src/test/resources/logback.xml | 5 +++++
.../org/apache/iotdb/tsfile/read/TsFileSequenceReader.java | 9 +++++++--
.../iotdb/tsfile/write/writer/ForceAppendTsFileWriter.java | 5 ++++-
.../iotdb/tsfile/write/writer/RestorableTsFileIOWriter.java | 6 ++++--
.../org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java | 10 +++++++---
7 files changed, 36 insertions(+), 12 deletions(-)
diff --git
a/server/src/main/java/org/apache/iotdb/db/query/control/FileReaderManager.java
b/server/src/main/java/org/apache/iotdb/db/query/control/FileReaderManager.java
index d52d4c9..dfabff8 100644
---
a/server/src/main/java/org/apache/iotdb/db/query/control/FileReaderManager.java
+++
b/server/src/main/java/org/apache/iotdb/db/query/control/FileReaderManager.java
@@ -41,6 +41,7 @@ import org.slf4j.LoggerFactory;
public class FileReaderManager implements IService {
private static final Logger logger =
LoggerFactory.getLogger(FileReaderManager.class);
+ private static final Logger resourceLogger =
LoggerFactory.getLogger("FileMonitor");
/**
* max number of file streams being cached, must be lower than 65535.
@@ -198,13 +199,17 @@ public class FileReaderManager implements IService {
public synchronized void closeAndRemoveAllOpenedReaders() throws IOException
{
for (Map.Entry<TsFileResource, TsFileSequenceReader> entry :
closedFileReaderMap.entrySet()) {
entry.getValue().close();
- logger.error("{} closedTsFileReader is closed.",
entry.getValue().getFileName());
+ if (resourceLogger.isInfoEnabled()) {
+ resourceLogger.info("{} closedTsFileReader is closed.",
entry.getValue().getFileName());
+ }
closedReferenceMap.remove(entry.getKey());
closedFileReaderMap.remove(entry.getKey());
}
for (Map.Entry<TsFileResource, TsFileSequenceReader> entry :
unclosedFileReaderMap.entrySet()) {
entry.getValue().close();
- logger.error("{} unclosedTsFileReader is closed.",
entry.getValue().getFileName());
+ if (resourceLogger.isInfoEnabled()) {
+ resourceLogger.info("{} unclosedTsFileReader is closed.",
entry.getValue().getFileName());
+ }
unclosedReferenceMap.remove(entry.getKey());
unclosedFileReaderMap.remove(entry.getKey());
}
diff --git
a/server/src/main/java/org/apache/iotdb/db/service/MetricsService.java
b/server/src/main/java/org/apache/iotdb/db/service/MetricsService.java
index b087f2e..3456c75 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/MetricsService.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/MetricsService.java
@@ -114,7 +114,7 @@ public class MetricsService implements MetricsServiceMBean,
IService {
@Override
public void stopService() {
- logger.warn("{}: closing {}...", IoTDBConstant.GLOBAL_DB_NAME,
this.getID().getName());
+ logger.info("{}: closing {}...", IoTDBConstant.GLOBAL_DB_NAME,
this.getID().getName());
try {
if (server != null) {
server.stop();
@@ -135,7 +135,7 @@ public class MetricsService implements MetricsServiceMBean,
IService {
executorService.shutdownNow();
}
checkAndWaitPortIsClosed();
- logger.warn("{}: close {} successfully", IoTDBConstant.GLOBAL_DB_NAME,
this.getID().getName());
+ logger.info("{}: close {} successfully", IoTDBConstant.GLOBAL_DB_NAME,
this.getID().getName());
}
private void checkAndWaitPortIsClosed() {
diff --git a/server/src/test/resources/logback.xml
b/server/src/test/resources/logback.xml
index b33456a..0061702 100644
--- a/server/src/test/resources/logback.xml
+++ b/server/src/test/resources/logback.xml
@@ -35,6 +35,11 @@
</appender>
<!--<logger name="org.apache.iotdb.db.utils.OpenFileNumUtil" level="debug"
/>-->
<!--<logger name="org.apache.iotdb.db.utils.OpenFileNumUtilTest"
level="debug" />-->
+ <!-- enable me if you want to monitor when files are opened and closed.
+ <logger name="FileMonitor" level="info"/>
+ -->
+ <logger name="FileMonitor" level="info"/>
+ <logger name="org.apache.iotdb.db.service.MetricsService" level="INFO" />
<root level="WARN">
<appender-ref ref="stdout"/>
</root>
diff --git
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
index 9b02847..fa07bd5 100644
---
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
+++
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
@@ -57,6 +57,7 @@ import org.slf4j.LoggerFactory;
public class TsFileSequenceReader implements AutoCloseable {
private static final Logger logger =
LoggerFactory.getLogger(TsFileSequenceReader.class);
+ private static final Logger resourceLogger =
LoggerFactory.getLogger("FileMonitor");
protected static final TSFileConfig config =
TSFileDescriptor.getInstance().getConfig();
protected String file;
@@ -92,7 +93,9 @@ public class TsFileSequenceReader implements AutoCloseable {
* @param loadMetadataSize -whether load meta data size
*/
public TsFileSequenceReader(String file, boolean loadMetadataSize) throws
IOException {
- logger.error("{} reader is opened. {}", file, getClass().getName());
+ if (resourceLogger.isInfoEnabled()) {
+ resourceLogger.info("{} reader is opened. {}", file,
getClass().getName());
+ }
this.file = file;
tsFileInput = FSFactoryProducer.getFileInputFactory().getTsFileInput(file);
// old version number of TsFile using little endian starts with "v"
@@ -467,7 +470,9 @@ public class TsFileSequenceReader implements AutoCloseable {
}
public void close() throws IOException {
- logger.error("{} reader is closed.", file);
+ if (resourceLogger.isInfoEnabled()) {
+ resourceLogger.error("{} reader is closed.", file);
+ }
this.tsFileInput.close();
deviceMetadataMap = null;
}
diff --git
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/ForceAppendTsFileWriter.java
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/ForceAppendTsFileWriter.java
index 1d74d7b..5ab6db0 100644
---
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/ForceAppendTsFileWriter.java
+++
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/ForceAppendTsFileWriter.java
@@ -39,8 +39,11 @@ public class ForceAppendTsFileWriter extends TsFileIOWriter{
private Map<String, MeasurementSchema> knownSchemas;
private long truncatePosition;
private static Logger logger =
LoggerFactory.getLogger(ForceAppendTsFileWriter.class);
+ private static final Logger resourceLogger =
LoggerFactory.getLogger("FileMonitor");
public ForceAppendTsFileWriter(File file) throws IOException {
- logger.error("{} is opened.", file.getName());
+ if (resourceLogger.isInfoEnabled()) {
+ resourceLogger.info("{} is opened.", file.getName());
+ }
this.out = new DefaultTsFileOutput(file, true);
this.file = file;
diff --git
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriter.java
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriter.java
index 091ad7e..2b731a8 100644
---
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriter.java
+++
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriter.java
@@ -48,7 +48,7 @@ public class RestorableTsFileIOWriter extends TsFileIOWriter {
private static final Logger logger = LoggerFactory
.getLogger(RestorableTsFileIOWriter.class);
-
+ private static final Logger resourceLogger =
LoggerFactory.getLogger("FileMonitor");
private long truncatedPosition = -1;
private Map<String, MeasurementSchema> knownSchemas = new HashMap<>();
@@ -71,7 +71,9 @@ public class RestorableTsFileIOWriter extends TsFileIOWriter {
* @throws IOException if write failed, or the file is broken but
autoRepair==false.
*/
public RestorableTsFileIOWriter(File file) throws IOException {
- logger.error("{} is opened.", file.getName());
+ if (resourceLogger.isInfoEnabled()) {
+ resourceLogger.info("{} is opened.", file.getName());
+ }
this.file = file;
this.out =
FSFactoryProducer.getFileOutputFactory().getTsFileOutput(file.getPath(), true);
diff --git
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
index a9f963e..98a2f8a 100644
---
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
+++
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
@@ -62,7 +62,7 @@ public class TsFileIOWriter {
public static final byte[] versionNumberBytes;
protected static final TSFileConfig config =
TSFileDescriptor.getInstance().getConfig();
private static final Logger logger =
LoggerFactory.getLogger(TsFileIOWriter.class);
-
+ private static final Logger resourceLogger =
LoggerFactory.getLogger("FileMonitor");
static {
magicStringBytes = BytesUtils.stringToBytes(TSFileConfig.MAGIC_STRING);
versionNumberBytes = TSFileConfig.VERSION_NUMBER.getBytes();
@@ -94,7 +94,9 @@ public class TsFileIOWriter {
public TsFileIOWriter(File file) throws IOException {
this.out = new DefaultTsFileOutput(file);
this.file = file;
- logger.error("{} is opened.", file.getName());
+ if (resourceLogger.isInfoEnabled()) {
+ resourceLogger.info("{} is opened.", file.getName());
+ }
startFile();
}
@@ -255,7 +257,9 @@ public class TsFileIOWriter {
// close file
out.close();
- logger.error("{} is closed.", file.getName());
+ if (resourceLogger.isInfoEnabled()) {
+ resourceLogger.error("{} is closed.", file.getName());
+ }
canWrite = false;
logger.info("output stream is closed");
}