You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ch...@apache.org on 2020/11/25 01:02:49 UTC

[iotdb] 05/05: refactor the index

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

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

commit 1e67eaca438545b804cd8700a683a2b68a39c92c
Author: chaow <xu...@gmail.com>
AuthorDate: Mon Oct 12 11:47:11 2020 +0800

    refactor the index
---
 .../resources/conf/iotdb-engine.properties         |  1 +
 .../iotdb/db/engine/merge/task/MergeFileTask.java  |  5 +-
 .../engine/storagegroup/StorageGroupProcessor.java | 29 +++++----
 .../db/engine/storagegroup/TsFileProcessor.java    |  4 +-
 .../db/engine/storagegroup/TsFileResource.java     |  3 -
 .../iotdb/db/timeIndex/FileIndexEntries.java       | 67 +++++++++++++++++++++
 .../iotdb/db/timeIndex/FileIndexerManager.java     |  3 +
 .../apache/iotdb/db/timeIndex/FileTimeIndexer.java | 68 +++-------------------
 .../{TimeIndex.java => TimeIndexEntry.java}        | 47 +++++++--------
 .../iotdb/db/timeIndex/UpdateIndexsParam.java      | 43 --------------
 .../timeIndex/device/LoadAllDeviceTimeIndexer.java | 35 ++---------
 .../timeIndex/device/RocksDBDeviceTimeIndexer.java | 35 ++---------
 12 files changed, 128 insertions(+), 212 deletions(-)

diff --git a/server/src/assembly/resources/conf/iotdb-engine.properties b/server/src/assembly/resources/conf/iotdb-engine.properties
index f8b2ca4..54184e1 100644
--- a/server/src/assembly/resources/conf/iotdb-engine.properties
+++ b/server/src/assembly/resources/conf/iotdb-engine.properties
@@ -254,6 +254,7 @@ max_waiting_time_when_insert_blocked=0
 # estimated metadata size (in byte) of one timeseries in Mtree
 estimated_series_size=300
 
+# time indexer
 enable_file_time_indexer=false
 # 0, device indexer base on file; 1, device indexer base on rocksdb
 file_time_indexer_type=0
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeFileTask.java b/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeFileTask.java
index a806271..d0e2efd 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeFileTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeFileTask.java
@@ -41,6 +41,7 @@ import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.metadata.PartialPath;
 import org.apache.iotdb.db.query.control.FileReaderManager;
+import org.apache.iotdb.db.timeIndex.FileIndexEntries;
 import org.apache.iotdb.db.timeIndex.FileIndexerManager;
 import org.apache.iotdb.db.timeIndex.FileTimeIndexer;
 import org.apache.iotdb.tsfile.exception.write.TsFileNotCompleteException;
@@ -204,9 +205,9 @@ class MergeFileTask {
 
       if (IoTDBDescriptor.getInstance().getConfig().isEnableFileTimeIndexer()) {
         // add new device index
-        // may Indexer need delete old index background
+        // may Indexer need delete old index background, or just overwrite old index
         FileTimeIndexer fileTimeIndexer = FileIndexerManager.getInstance().getSeqIndexer(seqFile.getStorageGroupName());
-        fileTimeIndexer.addIndexForPaths(seqFile.getDeviceToIndexMap(), seqFile.getStartTimes(), seqFile.getEndTimes(), seqFile.getTsFilePath());
+        fileTimeIndexer.addIndexForPaths(FileIndexEntries.convertFromTsFileResource(seqFile));
       }
     } catch (Exception e) {
       logger.error(e.getMessage(), e);
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
index 2e03646..d6f6ef8 100755
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
@@ -82,8 +82,10 @@ import org.apache.iotdb.db.query.context.QueryContext;
 import org.apache.iotdb.db.query.control.QueryFileManager;
 import org.apache.iotdb.db.service.IoTDB;
 import org.apache.iotdb.db.service.UpgradeSevice;
+import org.apache.iotdb.db.timeIndex.FileIndexEntries;
 import org.apache.iotdb.db.timeIndex.FileIndexerManager;
 import org.apache.iotdb.db.timeIndex.FileTimeIndexer;
+import org.apache.iotdb.db.timeIndex.TimeIndexEntry;
 import org.apache.iotdb.db.utils.CopyOnReadLinkedList;
 import org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer;
 import org.apache.iotdb.rpc.RpcUtils;
@@ -1304,15 +1306,11 @@ public class StorageGroupProcessor {
           tsFileManagement.remove(resource, isSeq);
           if (isSeq) {
             if (IoTDBDescriptor.getInstance().getConfig().isEnableFileTimeIndexer()) {
-              FileTimeIndexer fileTimeIndexer = FileIndexerManager.getInstance().getSeqIndexer(resource.getStorageGroupName());
-              fileTimeIndexer.deleteIndexForPaths(resource.getDeviceToIndexMap(), resource.getStartTimes(),
-                  resource.getEndTimes(), resource.getTsFilePath());
+              seqFileTimeIndexer.deleteIndexForPaths(FileIndexEntries.convertFromTsFileResource(resource));
             }
           } else {
             if (IoTDBDescriptor.getInstance().getConfig().isEnableFileTimeIndexer()) {
-              FileTimeIndexer fileTimeIndexer = FileIndexerManager.getInstance().getUnseqIndexer(resource.getStorageGroupName());
-              fileTimeIndexer.deleteIndexForPaths(resource.getDeviceToIndexMap(), resource.getStartTimes(),
-                    resource.getEndTimes(), resource.getTsFilePath());
+              unseqFileTimeIndexer.deleteIndexForPaths(FileIndexEntries.convertFromTsFileResource(resource));
             }
           }
         } catch (IllegalPathException e) {
@@ -1404,8 +1402,13 @@ public class StorageGroupProcessor {
     List<TsFileResource> unseqResources;
     try {
       if (IoTDBDescriptor.getInstance().getConfig().isEnableFileTimeIndexer()) {
-        seqResources = seqFileTimeIndexer.filterByPath(deviceId, timeFilter);
-        unseqResources = unseqFileTimeIndexer.filterByPath(deviceId, timeFilter);
+        List<FileIndexEntries> seqFiles = seqFileTimeIndexer.filterByPath(deviceId, timeFilter);
+        List<FileIndexEntries> unseqFiles = unseqFileTimeIndexer.filterByPath(deviceId, timeFilter);
+
+        // TODO load resource or just use resource according to the implements
+        seqResources = new ArrayList<>(seqFiles.size());
+        unseqResources = new ArrayList<>(unseqFiles.size());
+
         List<TsFileResource> unsealedSeqFiles = getUnSealedListResourceForQuery(
           tsFileManagement.getTsFileList(true),
           deviceId, measurementId, context, timeFilter, true);
@@ -1902,8 +1905,7 @@ public class StorageGroupProcessor {
         } else {
           fileTimeIndexer = FileIndexerManager.getInstance().getUnseqIndexer(newTsFileResource.getStorageGroupName());
         }
-        fileTimeIndexer.addIndexForPaths(newTsFileResource.getDeviceToIndexMap(), newTsFileResource.getStartTimes(),
-            newTsFileResource.getEndTimes(), newTsFileResource.getTsFilePath());
+        fileTimeIndexer.addIndexForPaths(FileIndexEntries.convertFromTsFileResource(newTsFileResource));
       }
     } catch (DiskSpaceInsufficientException | IllegalPathException e) {
       logger.error(
@@ -1973,8 +1975,7 @@ public class StorageGroupProcessor {
           } else {
             fileTimeIndexer = FileIndexerManager.getInstance().getUnseqIndexer(newTsFileResource.getStorageGroupName());
           }
-          fileTimeIndexer.addIndexForPaths(newTsFileResource.getDeviceToIndexMap(), newTsFileResource.getStartTimes(),
-              newTsFileResource.getEndTimes(), newTsFileResource.getTsFilePath());
+          fileTimeIndexer.addIndexForPaths(FileIndexEntries.convertFromTsFileResource(newTsFileResource));
         } catch (IllegalPathException e) {
           logger.error("Fail to get DeviceTimeIndexer for storage group {}, err:{}", newTsFileResource.getStorageGroupName(), e.getMessage());
           IoTDBDescriptor.getInstance().getConfig().setReadOnly(true);
@@ -2391,9 +2392,7 @@ public class StorageGroupProcessor {
             fileTimeIndexer = FileIndexerManager.getInstance().getUnseqIndexer(tsFileResourceToBeDeleted.getStorageGroupName());
           }
           if (fileTimeIndexer != null) {
-            fileTimeIndexer.deleteIndexForPaths(tsFileResourceToBeDeleted.getDeviceToIndexMap(),
-                tsFileResourceToBeDeleted.getStartTimes(), tsFileResourceToBeDeleted.getEndTimes(),
-                tsFileResourceToBeDeleted.getTsFilePath());
+            fileTimeIndexer.deleteIndexForPaths(FileIndexEntries.convertFromTsFileResource(tsFileResourceToBeDeleted));
           }
         } catch (IllegalPathException e) {
           return false;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java
index cf18c83..bb146f3 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java
@@ -60,6 +60,7 @@ import org.apache.iotdb.db.query.context.QueryContext;
 import org.apache.iotdb.db.rescon.PrimitiveArrayManager;
 import org.apache.iotdb.db.rescon.SystemInfo;
 import org.apache.iotdb.db.utils.MemUtils;
+import org.apache.iotdb.db.timeIndex.FileIndexEntries;
 import org.apache.iotdb.db.timeIndex.FileIndexerManager;
 import org.apache.iotdb.db.timeIndex.FileTimeIndexer;
 import org.apache.iotdb.db.utils.QueryUtils;
@@ -824,8 +825,7 @@ public class TsFileProcessor {
         } else {
           fileTimeIndexer = FileIndexerManager.getInstance().getUnseqIndexer(storageGroupName);
         }
-        fileTimeIndexer.addIndexForPaths(tsFileResource.deviceToIndex, tsFileResource.startTimes,
-            tsFileResource.endTimes, tsFileResource.getTsFilePath());
+        fileTimeIndexer.addIndexForPaths(FileIndexEntries.convertFromTsFileResource(tsFileResource));
       } catch (IllegalPathException e) {
         logger.error("Failed to endFile {} for storage group {}, err:{}", tsFileResource.getTsFile(),
             tsFileResource.getStorageGroupName(), e.getMessage());
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java
index ca2b819..c55c73e 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java
@@ -517,9 +517,6 @@ public class TsFileResource {
   }
 
   public void close() throws IOException {
-    //TODO update index
-
-
     closed = true;
     if (modFile != null) {
       modFile.close();
diff --git a/server/src/main/java/org/apache/iotdb/db/timeIndex/FileIndexEntries.java b/server/src/main/java/org/apache/iotdb/db/timeIndex/FileIndexEntries.java
new file mode 100644
index 0000000..8f566ba
--- /dev/null
+++ b/server/src/main/java/org/apache/iotdb/db/timeIndex/FileIndexEntries.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.iotdb.db.timeIndex;
+
+import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
+import org.apache.iotdb.db.exception.metadata.IllegalPathException;
+import org.apache.iotdb.db.metadata.PartialPath;
+
+import java.util.Map;
+
+/**
+ * Time Index, like deviceIndex: [(deviceId, startTime, endTime, TsFilePath)] to accelerate query
+ */
+public class FileIndexEntries {
+  private TimeIndexEntry[] indexEntries;
+  private String tsFilePath;
+
+  public TimeIndexEntry[] getIndexEntries() {
+    return indexEntries;
+  }
+
+  public void setIndexEntries(TimeIndexEntry[] indexEntries) {
+    this.indexEntries = indexEntries;
+  }
+
+  public String getTsFilePath() {
+    return tsFilePath;
+  }
+
+  public void setTsFilePath(String tsFilePath) {
+    this.tsFilePath = tsFilePath;
+  }
+
+  public static FileIndexEntries convertFromTsFileResource(TsFileResource resource) throws IllegalPathException {
+    FileIndexEntries fileIndexEntries = new FileIndexEntries();
+    TimeIndexEntry[] timeIndexEntries = new TimeIndexEntry[resource.getDeviceToIndexMap().size()];
+    int i = 0;
+    for (Map.Entry<String, Integer> entry : resource.getDeviceToIndexMap().entrySet()) {
+      TimeIndexEntry timeIndexEntry = new TimeIndexEntry();
+      timeIndexEntry.setAllElem(
+        new PartialPath(entry.getKey()),
+        resource.getStartTime(entry.getValue()),
+        resource.getEndTime(entry.getValue()));
+      timeIndexEntries[i++] = timeIndexEntry;
+    }
+    fileIndexEntries.setIndexEntries(timeIndexEntries);
+    fileIndexEntries.setTsFilePath(resource.getTsFilePath());
+
+    return fileIndexEntries;
+  }
+}
\ No newline at end of file
diff --git a/server/src/main/java/org/apache/iotdb/db/timeIndex/FileIndexerManager.java b/server/src/main/java/org/apache/iotdb/db/timeIndex/FileIndexerManager.java
index 2c9f602..caeed74 100644
--- a/server/src/main/java/org/apache/iotdb/db/timeIndex/FileIndexerManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/timeIndex/FileIndexerManager.java
@@ -29,6 +29,9 @@ import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
+/**
+ * Manage all indexers
+ */
 public class FileIndexerManager {
   private String indexerFilePath;
   private Map<PartialPath, FileTimeIndexer> seqIndexers;
diff --git a/server/src/main/java/org/apache/iotdb/db/timeIndex/FileTimeIndexer.java b/server/src/main/java/org/apache/iotdb/db/timeIndex/FileTimeIndexer.java
index 64c6dab..5172e92 100644
--- a/server/src/main/java/org/apache/iotdb/db/timeIndex/FileTimeIndexer.java
+++ b/server/src/main/java/org/apache/iotdb/db/timeIndex/FileTimeIndexer.java
@@ -18,7 +18,6 @@
  */
 package org.apache.iotdb.db.timeIndex;
 
-import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
 import org.apache.iotdb.db.metadata.PartialPath;
 import org.apache.iotdb.tsfile.read.filter.basic.Filter;
 
@@ -45,77 +44,26 @@ public interface FileTimeIndexer {
   public boolean end();
 
   /**
-   * add one index record for the path
-   * @param path
-   * @param startTime
-   * @param endTime
-   * @param tsFilePath
-   * @return
-   */
-  public boolean addIndexForPath(PartialPath path, long startTime, long endTime, String tsFilePath);
-
-  /**
-   * aadd one index record for the path
-   * @param path
-   * @param startTime
-   * @param endTime
-   * @param tsFilePath
-   * @return
-   */
-  public boolean addIndexForPath(String path, long startTime, long endTime, String tsFilePath);
-
-  /**
    * add all indexs for a flushed tsFile
-   * @param paths
-   * @param startTimes
-   * @param endTimes
-   * @param tsFilePath
+   *
+   * @param fileIndexEntries
    * @return
    */
-  public boolean addIndexForPaths(Map<String, Integer> paths, long[] startTimes, long[] endTimes, String tsFilePath);
+  public boolean addIndexForPaths(FileIndexEntries fileIndexEntries);
 
   /**
    * delete one index for the path
-   * @param path
-   * @param startTime
-   * @param endTime
-   * @param tsFilePath
-   * @return whether success
-   */
-  public boolean deleteIndexForPath(PartialPath path, long startTime, long endTime, String tsFilePath);
-
-  /**
-   * delete one index for the path
-   * @param path
-   * @param startTime
-   * @param endTime
-   * @param tsFilePath
-   * @return
-   */
-  public boolean deleteIndexForPath(String path, long startTime, long endTime, String tsFilePath);
-
-  /**
-   * delete all index for one deleted tsfile
-   * @param paths
-   * @param startTimes
-   * @param endTimes
-   * @param tsFilePath
+   *
+   * @param fileIndexEntries
    * @return
    */
-  public boolean deleteIndexForPaths(Map<String, Integer> paths, long[] startTimes, long[] endTimes, String tsFilePath);
-
-  /**
-   * after merge, we should keep the index is updated in consistency
-   * @param updateIndexsParam
-   * @return whether success
-   */
-  public boolean updateIndexForPaths(UpdateIndexsParam updateIndexsParam);
+  public boolean deleteIndexForPaths(FileIndexEntries fileIndexEntries);
 
   /**
    * found the related tsFile(only cover sealed tsfile) for one deviceId
-   * @param path
+   * @param path  does not support regex match
    * @param timeFilter
    * @return whether success
    */
-  public List<TsFileResource> filterByPath(PartialPath path, Filter timeFilter);
+  public List<FileIndexEntries> filterByPath(PartialPath path, Filter timeFilter);
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/timeIndex/TimeIndex.java b/server/src/main/java/org/apache/iotdb/db/timeIndex/TimeIndexEntry.java
similarity index 54%
rename from server/src/main/java/org/apache/iotdb/db/timeIndex/TimeIndex.java
rename to server/src/main/java/org/apache/iotdb/db/timeIndex/TimeIndexEntry.java
index 5cf3705..0b9d385 100644
--- a/server/src/main/java/org/apache/iotdb/db/timeIndex/TimeIndex.java
+++ b/server/src/main/java/org/apache/iotdb/db/timeIndex/TimeIndexEntry.java
@@ -21,43 +21,40 @@ package org.apache.iotdb.db.timeIndex;
 import org.apache.iotdb.db.metadata.PartialPath;
 
 /**
- * Time Index, like deviceIndex: [(deviceId, startTime, endTime, TsFilePath)] to accelerate query
+ * time index entry, contains path, startTime, endTime
  */
-public class TimeIndex {
-  private PartialPath[] paths;
-  private long[] startTimes;
-  private long[] endTimes;
-  private String tsFilePath;
-
-  public PartialPath[] getPaths() {
-    return paths;
-  }
+public class TimeIndexEntry {
+  private PartialPath path;
+  private long startTime;
+  private long endTime;
 
-  public void setPaths(PartialPath[] paths) {
-    this.paths = paths;
+  public PartialPath getPath() {
+    return path;
   }
 
-  public long[] getStartTimes() {
-    return startTimes;
+  public void setPath(PartialPath path) {
+    this.path = path;
   }
 
-  public void setStartTimes(long[] startTimes) {
-    this.startTimes = startTimes;
+  public long getStartTime() {
+    return startTime;
   }
 
-  public long[] getEndTimes() {
-    return endTimes;
+  public void setStartTime(long startTime) {
+    this.startTime = startTime;
   }
 
-  public void setEndTimes(long[] endTimes) {
-    this.endTimes = endTimes;
+  public long getEndTime() {
+    return endTime;
   }
 
-  public String getTsFilePath() {
-    return tsFilePath;
+  public void setEndTime(long endTime) {
+    this.endTime = endTime;
   }
 
-  public void setTsFilePath(String tsFilePath) {
-    this.tsFilePath = tsFilePath;
+  public void setAllElem(PartialPath path, long startTime, long endTime) {
+    this.path = path;
+    this.startTime = startTime;
+    this.endTime = endTime;
   }
-}
\ No newline at end of file
+}
diff --git a/server/src/main/java/org/apache/iotdb/db/timeIndex/UpdateIndexsParam.java b/server/src/main/java/org/apache/iotdb/db/timeIndex/UpdateIndexsParam.java
deleted file mode 100644
index e7b14b7..0000000
--- a/server/src/main/java/org/apache/iotdb/db/timeIndex/UpdateIndexsParam.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.db.timeIndex;
-
-/**
- * to atomic update indexs for path
- */
-public class UpdateIndexsParam {
-  private TimeIndex[] oldIndexs;
-  private TimeIndex newIndex;
-
-  public TimeIndex[] getOldIndexs() {
-    return oldIndexs;
-  }
-
-  public void setOldIndexs(TimeIndex[] oldIndexs) {
-    this.oldIndexs = oldIndexs;
-  }
-
-  public TimeIndex getNewIndex() {
-    return newIndex;
-  }
-
-  public void setNewIndex(TimeIndex newIndex) {
-    this.newIndex = newIndex;
-  }
-}
diff --git a/server/src/main/java/org/apache/iotdb/db/timeIndex/device/LoadAllDeviceTimeIndexer.java b/server/src/main/java/org/apache/iotdb/db/timeIndex/device/LoadAllDeviceTimeIndexer.java
index 3d02b9c..a15bdef 100644
--- a/server/src/main/java/org/apache/iotdb/db/timeIndex/device/LoadAllDeviceTimeIndexer.java
+++ b/server/src/main/java/org/apache/iotdb/db/timeIndex/device/LoadAllDeviceTimeIndexer.java
@@ -18,14 +18,12 @@
  */
 package org.apache.iotdb.db.timeIndex.device;
 
-import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
 import org.apache.iotdb.db.metadata.PartialPath;
+import org.apache.iotdb.db.timeIndex.FileIndexEntries;
 import org.apache.iotdb.db.timeIndex.FileTimeIndexer;
-import org.apache.iotdb.db.timeIndex.UpdateIndexsParam;
 import org.apache.iotdb.tsfile.read.filter.basic.Filter;
 
 import java.util.List;
-import java.util.Map;
 
 public class LoadAllDeviceTimeIndexer implements FileTimeIndexer {
 
@@ -49,42 +47,17 @@ public class LoadAllDeviceTimeIndexer implements FileTimeIndexer {
   }
 
   @Override
-  public boolean addIndexForPath(PartialPath path, long startTime, long endTime, String tsFilePath) {
+  public boolean addIndexForPaths(FileIndexEntries fileIndexEntries) {
     return false;
   }
 
   @Override
-  public boolean addIndexForPath(String path, long startTime, long endTime, String tsFilePath) {
+  public boolean deleteIndexForPaths(FileIndexEntries fileIndexEntries) {
     return false;
   }
 
   @Override
-  public boolean addIndexForPaths(Map<String, Integer> paths, long[] startTimes, long[] endTimes, String tsFilePath) {
-    return false;
-  }
-
-  @Override
-  public boolean deleteIndexForPath(PartialPath path, long startTime, long endTime, String tsFilePath) {
-    return false;
-  }
-
-  @Override
-  public boolean deleteIndexForPath(String path, long startTime, long endTime, String tsFilePath) {
-    return false;
-  }
-
-  @Override
-  public boolean deleteIndexForPaths(Map<String, Integer> paths, long[] startTimes, long[] endTimes, String tsFilePath) {
-    return false;
-  }
-
-  @Override
-  public boolean updateIndexForPaths(UpdateIndexsParam updateIndexsParam) {
-    return false;
-  }
-
-  @Override
-  public List<TsFileResource> filterByPath(PartialPath path, Filter timeFilter) {
+  public List<FileIndexEntries> filterByPath(PartialPath path, Filter timeFilter) {
     return null;
   }
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/timeIndex/device/RocksDBDeviceTimeIndexer.java b/server/src/main/java/org/apache/iotdb/db/timeIndex/device/RocksDBDeviceTimeIndexer.java
index 686531f..029bb62 100644
--- a/server/src/main/java/org/apache/iotdb/db/timeIndex/device/RocksDBDeviceTimeIndexer.java
+++ b/server/src/main/java/org/apache/iotdb/db/timeIndex/device/RocksDBDeviceTimeIndexer.java
@@ -18,14 +18,12 @@
  */
 package org.apache.iotdb.db.timeIndex.device;
 
-import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
 import org.apache.iotdb.db.metadata.PartialPath;
+import org.apache.iotdb.db.timeIndex.FileIndexEntries;
 import org.apache.iotdb.db.timeIndex.FileTimeIndexer;
-import org.apache.iotdb.db.timeIndex.UpdateIndexsParam;
 import org.apache.iotdb.tsfile.read.filter.basic.Filter;
 
 import java.util.List;
-import java.util.Map;
 
 public class RocksDBDeviceTimeIndexer implements FileTimeIndexer {
   @Override
@@ -44,42 +42,17 @@ public class RocksDBDeviceTimeIndexer implements FileTimeIndexer {
   }
 
   @Override
-  public boolean addIndexForPath(PartialPath path, long startTime, long endTime, String tsFilePath) {
+  public boolean addIndexForPaths(FileIndexEntries fileIndexEntries) {
     return false;
   }
 
   @Override
-  public boolean addIndexForPath(String path, long startTime, long endTime, String tsFilePath) {
+  public boolean deleteIndexForPaths(FileIndexEntries fileIndexEntries) {
     return false;
   }
 
   @Override
-  public boolean addIndexForPaths(Map<String, Integer> paths, long[] startTimes, long[] endTimes, String tsFilePath) {
-    return false;
-  }
-
-  @Override
-  public boolean deleteIndexForPath(PartialPath path, long startTime, long endTime, String tsFilePath) {
-    return false;
-  }
-
-  @Override
-  public boolean deleteIndexForPath(String path, long startTime, long endTime, String tsFilePath) {
-    return false;
-  }
-
-  @Override
-  public boolean deleteIndexForPaths(Map<String, Integer> deviceIds, long[] startTimes, long[] endTimes, String tsFilePath) {
-    return false;
-  }
-
-  @Override
-  public boolean updateIndexForPaths(UpdateIndexsParam updateIndexsParam) {
-    return false;
-  }
-
-  @Override
-  public List<TsFileResource> filterByPath(PartialPath path, Filter timeFilter) {
+  public List<FileIndexEntries> filterByPath(PartialPath path, Filter timeFilter) {
     return null;
   }
 }