You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hu...@apache.org on 2023/02/17 07:00:43 UTC

[iotdb] 07/16: re-define ModelInfo interface

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

hui pushed a commit to branch lmh/modelManager
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 254d39595702f0020c39b75b59219e123ed9e5ed
Author: Minghui Liu <li...@foxmail.com>
AuthorDate: Thu Jan 5 22:25:55 2023 +0800

    re-define ModelInfo interface
---
 .../iotdb/confignode/persistence/ModelInfo.java    | 34 +++++++++++++++++-----
 1 file changed, 26 insertions(+), 8 deletions(-)

diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/ModelInfo.java b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/ModelInfo.java
index a734aef299..25ad5b262b 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/ModelInfo.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/ModelInfo.java
@@ -24,6 +24,8 @@ import org.apache.iotdb.commons.model.ModelInformation;
 import org.apache.iotdb.commons.snapshot.SnapshotProcessor;
 import org.apache.iotdb.confignode.consensus.request.read.model.ShowModelPlan;
 import org.apache.iotdb.confignode.consensus.request.read.model.ShowTrailPlan;
+import org.apache.iotdb.confignode.consensus.request.write.model.CreateModelPlan;
+import org.apache.iotdb.confignode.consensus.request.write.model.DropModelPlan;
 import org.apache.iotdb.confignode.consensus.request.write.model.UpdateModelInfoPlan;
 import org.apache.iotdb.confignode.consensus.response.ModelTableResp;
 import org.apache.iotdb.confignode.consensus.response.TrailTableResp;
@@ -42,8 +44,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.concurrent.locks.ReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.concurrent.locks.ReentrantLock;
 
 @ThreadSafe
 public class ModelInfo implements SnapshotProcessor {
@@ -54,11 +55,24 @@ public class ModelInfo implements SnapshotProcessor {
 
   private final Map<String, ModelInformation> modelInfoMap;
 
-  private final ReadWriteLock lock;
+  private final ReentrantLock modelTableLock = new ReentrantLock();
 
   public ModelInfo() {
     this.modelInfoMap = new HashMap<>();
-    this.lock = new ReentrantReadWriteLock();
+  }
+
+  public void acquireModelTableLock() {
+    LOGGER.info("acquire ModelTableLock");
+    modelTableLock.lock();
+  }
+
+  public void releaseModelTableLock() {
+    LOGGER.info("release ModelTableLock");
+    modelTableLock.unlock();
+  }
+
+  public TSStatus createModel(CreateModelPlan plan) {
+    return null;
   }
 
   public ModelTableResp showModel(ShowModelPlan plan) {
@@ -73,6 +87,10 @@ public class ModelInfo implements SnapshotProcessor {
     return null;
   }
 
+  public TSStatus dropModel(DropModelPlan plan) {
+    return null;
+  }
+
   @Override
   public boolean processTakeSnapshot(File snapshotDir) throws TException, IOException {
     File snapshotFile = new File(snapshotDir, SNAPSHOT_FILENAME);
@@ -83,13 +101,13 @@ public class ModelInfo implements SnapshotProcessor {
       return false;
     }
 
-    lock.readLock().lock();
+    acquireModelTableLock();
     try (FileOutputStream fileOutputStream = new FileOutputStream(snapshotFile)) {
 
       serialize(fileOutputStream);
       return true;
     } finally {
-      lock.readLock().unlock();
+      releaseModelTableLock();
     }
   }
 
@@ -109,7 +127,7 @@ public class ModelInfo implements SnapshotProcessor {
           snapshotFile.getAbsolutePath());
       return;
     }
-    lock.writeLock().lock();
+    acquireModelTableLock();
     try (FileInputStream fileInputStream = new FileInputStream(snapshotFile)) {
 
       clear();
@@ -117,7 +135,7 @@ public class ModelInfo implements SnapshotProcessor {
       deserialize(fileInputStream);
 
     } finally {
-      lock.writeLock().unlock();
+      releaseModelTableLock();
     }
   }