You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2022/01/18 04:31:06 UTC

[iotdb] branch TooManyOpenFiles created (now 2810e4f)

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

jackietien pushed a change to branch TooManyOpenFiles
in repository https://gitbox.apache.org/repos/asf/iotdb.git.


      at 2810e4f  format code

This branch includes the following new commits:

     new f8a42a2  Fix file handler resource leak in FileIndex
     new 2810e4f  format code

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[iotdb] 01/02: Fix file handler resource leak in FileIndex

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit f8a42a244c1ba5accea520ec4e50ba8aceaedde5
Author: JackieTien97 <ja...@gmail.com>
AuthorDate: Tue Jan 18 12:29:41 2022 +0800

    Fix file handler resource leak in FileIndex
---
 .../apache/iotdb/db/engine/storagegroup/timeindex/FileTimeIndex.java  | 3 +--
 .../java/org/apache/iotdb/db/query/control/FileReaderManager.java     | 4 ++--
 .../main/java/org/apache/iotdb/db/rescon/TsFileResourceManager.java   | 1 +
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/FileTimeIndex.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/FileTimeIndex.java
index f7623e5..e54d7bb 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/FileTimeIndex.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/FileTimeIndex.java
@@ -81,8 +81,7 @@ public class FileTimeIndex implements ITimeIndex {
 
   @Override
   public Set<String> getDevices(String tsFilePath) {
-    try {
-      TsFileSequenceReader fileReader = FileReaderManager.getInstance().get(tsFilePath, true);
+    try (TsFileSequenceReader fileReader = new TsFileSequenceReader(tsFilePath)) {
       return new HashSet<>(fileReader.getAllDevices());
     } catch (IOException e) {
       logger.error("Can't read file {} from disk ", tsFilePath, e);
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 0046bf0..3cd2ee7 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
@@ -140,7 +140,7 @@ public class FileReaderManager {
    * Increase the reference count of the reader specified by filePath. Only when the reference count
    * of a reader equals zero, the reader can be closed and removed.
    */
-  void increaseFileReaderReference(TsFileResource tsFile, boolean isClosed) {
+  public void increaseFileReaderReference(TsFileResource tsFile, boolean isClosed) {
     tsFile.readLock();
     synchronized (this) {
       if (!isClosed) {
@@ -159,7 +159,7 @@ public class FileReaderManager {
    * Decrease the reference count of the reader specified by filePath. This method is latch-free.
    * Only when the reference count of a reader equals zero, the reader can be closed and removed.
    */
-  void decreaseFileReaderReference(TsFileResource tsFile, boolean isClosed) {
+  public void decreaseFileReaderReference(TsFileResource tsFile, boolean isClosed) {
     synchronized (this) {
       if (!isClosed && unclosedReferenceMap.containsKey(tsFile.getTsFilePath())) {
         if (unclosedReferenceMap.get(tsFile.getTsFilePath()).decrementAndGet() == 0) {
diff --git a/server/src/main/java/org/apache/iotdb/db/rescon/TsFileResourceManager.java b/server/src/main/java/org/apache/iotdb/db/rescon/TsFileResourceManager.java
index 2d5a21a..4d9b411 100644
--- a/server/src/main/java/org/apache/iotdb/db/rescon/TsFileResourceManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/rescon/TsFileResourceManager.java
@@ -95,6 +95,7 @@ public class TsFileResourceManager {
         throw new RuntimeException("Can't degrade any more");
       }
       long memoryReduce = tsFileResource.degradeTimeIndex();
+      logger.info("Degrade tsfile resource {}", tsFileResource.getTsFilePath());
       releaseTimeIndexMemCost(memoryReduce);
       // add the polled tsFileResource to the priority queue
       sealedTsFileResources.add(tsFileResource);

[iotdb] 02/02: format code

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 2810e4f13c1fada5995d74b3ed72300229acfa1f
Author: JackieTien97 <ja...@gmail.com>
AuthorDate: Tue Jan 18 12:30:19 2022 +0800

    format code
---
 .../org/apache/iotdb/db/engine/storagegroup/timeindex/FileTimeIndex.java | 1 -
 1 file changed, 1 deletion(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/FileTimeIndex.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/FileTimeIndex.java
index e54d7bb..5defc50 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/FileTimeIndex.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/FileTimeIndex.java
@@ -21,7 +21,6 @@ package org.apache.iotdb.db.engine.storagegroup.timeindex;
 
 import org.apache.iotdb.db.engine.StorageEngine;
 import org.apache.iotdb.db.exception.PartitionViolationException;
-import org.apache.iotdb.db.query.control.FileReaderManager;
 import org.apache.iotdb.tsfile.read.TsFileSequenceReader;
 import org.apache.iotdb.tsfile.utils.FilePathUtils;
 import org.apache.iotdb.tsfile.utils.RamUsageEstimator;