You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2019/06/21 01:36:02 UTC

[incubator-iotdb] 03/03: resolve query conflict

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

qiaojialin pushed a commit to branch feature_async_close_tsfile
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit 0fa0095713b4e452e716ccef8ce9e3d9ec88ea66
Author: qiaojialin <64...@qq.com>
AuthorDate: Fri Jun 21 09:35:47 2019 +0800

    resolve query conflict
---
 .../db/engine/filenodeV2/TsFileResourceV2.java     | 25 ++++++--
 .../db/engine/querycontext/UnsealedTsFileV2.java   | 70 ----------------------
 .../iotdb/db/query/control/JobFileManager.java     |  7 +--
 .../reader/sequence/SequenceDataReaderV2.java      |  6 +-
 .../reader/sequence/UnSealedTsFileReaderV2.java    |  8 +--
 5 files changed, 28 insertions(+), 88 deletions(-)

diff --git a/iotdb/src/main/java/org/apache/iotdb/db/engine/filenodeV2/TsFileResourceV2.java b/iotdb/src/main/java/org/apache/iotdb/db/engine/filenodeV2/TsFileResourceV2.java
index a732f0d..b9dac47 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/engine/filenodeV2/TsFileResourceV2.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/engine/filenodeV2/TsFileResourceV2.java
@@ -50,12 +50,13 @@ public class TsFileResourceV2 {
   /**
    * Chunk metadata list of unsealed tsfile
    */
-  private List<ChunkMetaData> timeSeriesChunkMetaDatas;
+  private List<ChunkMetaData> chunkMetaDatas;
+
 
   /**
    * Mem chunk data
    */
-  private ReadOnlyMemChunk readableChunk;
+  private ReadOnlyMemChunk readOnlyMemChunk;
 
   public TsFileResourceV2(File file) {
     this.file = file;
@@ -70,11 +71,11 @@ public class TsFileResourceV2 {
   }
 
   public TsFileResourceV2(File file,
-      ReadOnlyMemChunk readableChunk,
-      List<ChunkMetaData> timeSeriesChunkMetaDatas) {
+      ReadOnlyMemChunk readOnlyMemChunk,
+      List<ChunkMetaData> chunkMetaDatas) {
     this.file = file;
-    this.timeSeriesChunkMetaDatas = timeSeriesChunkMetaDatas;
-    this.readableChunk = readableChunk;
+    this.chunkMetaDatas = chunkMetaDatas;
+    this.readOnlyMemChunk = readOnlyMemChunk;
   }
 
   public void updateStartTime(String device, long time) {
@@ -85,6 +86,18 @@ public class TsFileResourceV2 {
     }
   }
 
+  public List<ChunkMetaData> getChunkMetaDatas() {
+    return chunkMetaDatas;
+  }
+
+  public ReadOnlyMemChunk getReadOnlyMemChunk() {
+    return readOnlyMemChunk;
+  }
+
+  public ModificationFile getModFile() {
+    return modFile;
+  }
+
   public File getFile() {
     return file;
   }
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/engine/querycontext/UnsealedTsFileV2.java b/iotdb/src/main/java/org/apache/iotdb/db/engine/querycontext/UnsealedTsFileV2.java
deleted file mode 100644
index 58e988d..0000000
--- a/iotdb/src/main/java/org/apache/iotdb/db/engine/querycontext/UnsealedTsFileV2.java
+++ /dev/null
@@ -1,70 +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.engine.querycontext;
-
-import java.io.File;
-import java.util.List;
-import java.util.Map;
-import org.apache.iotdb.db.engine.filenodeV2.TsFileResourceV2;
-import org.apache.iotdb.tsfile.file.metadata.ChunkMetaData;
-
-public class UnsealedTsFileV2 extends TsFileResourceV2 {
-
-  private List<ChunkMetaData> timeSeriesChunkMetaDatas;
-
-  // seq mem-table
-  private ReadOnlyMemChunk readableChunk;
-
-  public UnsealedTsFileV2(File file) {
-    super(file);
-  }
-
-  public UnsealedTsFileV2(File file, Map<String, Long> startTimeMap,
-      Map<String, Long> endTimeMap) {
-    super(file, startTimeMap, endTimeMap);
-  }
-
-  public UnsealedTsFileV2(File file, ReadOnlyMemChunk readableChunk,
-      List<ChunkMetaData> timeSeriesChunkMetaDatas) {
-    super(file);
-    this.timeSeriesChunkMetaDatas = timeSeriesChunkMetaDatas;
-    this.readableChunk = readableChunk;
-  }
-
-  @Override
-  public TSFILE_TYPE getTsFileType() {
-    return TSFILE_TYPE.UNSEALED;
-  }
-
-  public List<ChunkMetaData> getChunkMetaDataList() {
-    return timeSeriesChunkMetaDatas;
-  }
-
-  public void setTimeSeriesChunkMetaDatas(List<ChunkMetaData> timeSeriesChunkMetaDatas) {
-    this.timeSeriesChunkMetaDatas = timeSeriesChunkMetaDatas;
-  }
-
-  public ReadOnlyMemChunk getReadableChunk() {
-    return readableChunk;
-  }
-
-  public void setReadableChunk(ReadOnlyMemChunk readableChunk) {
-    this.readableChunk = readableChunk;
-  }
-}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/control/JobFileManager.java b/iotdb/src/main/java/org/apache/iotdb/db/query/control/JobFileManager.java
index 0b44c01..256c9fc 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/control/JobFileManager.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/query/control/JobFileManager.java
@@ -23,7 +23,6 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import org.apache.iotdb.db.engine.filenode.TsFileResource;
 import org.apache.iotdb.db.engine.filenodeV2.TsFileResourceV2;
-import org.apache.iotdb.db.engine.filenodeV2.TsFileResourceV2.TSFILE_TYPE;
 import org.apache.iotdb.db.engine.querycontext.OverflowInsertFile;
 import org.apache.iotdb.db.engine.querycontext.QueryDataSource;
 import org.apache.iotdb.db.engine.querycontext.QueryDataSourceV2;
@@ -85,7 +84,7 @@ public class JobFileManager {
     //sequence data
     for(TsFileResourceV2 tsFileResource : dataSource.getSeqDataSource().getQueryTsFiles()){
       String path = tsFileResource.getFile().getPath();
-      if(tsFileResource.getTsFileType().equals(TSFILE_TYPE.SEALED)){
+      if(tsFileResource.isClosed()){
         addFilePathToMap(jobId, path, true);
       }
       else {
@@ -94,9 +93,9 @@ public class JobFileManager {
     }
 
     //overflow data
-    for(TsFileResourceV2 tsFileResource : dataSource.getOverflowSeriesDataSource().getQueryTsFiles()){
+    for(TsFileResourceV2 tsFileResource : dataSource.getUnSequenceDataSource().getQueryTsFiles()){
       String path = tsFileResource.getFile().getPath();
-      if(tsFileResource.getTsFileType().equals(TSFILE_TYPE.SEALED)){
+      if(tsFileResource.isClosed()){
         addFilePathToMap(jobId, path, true);
       }
       else {
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SequenceDataReaderV2.java b/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SequenceDataReaderV2.java
index 25e235d..c4e2652 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SequenceDataReaderV2.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SequenceDataReaderV2.java
@@ -22,10 +22,8 @@ import java.io.IOException;
 import java.util.Collections;
 import java.util.List;
 import org.apache.iotdb.db.engine.filenodeV2.TsFileResourceV2;
-import org.apache.iotdb.db.engine.filenodeV2.TsFileResourceV2.TSFILE_TYPE;
 import org.apache.iotdb.db.engine.modification.Modification;
 import org.apache.iotdb.db.engine.querycontext.GlobalSortedSeriesDataSourceV2;
-import org.apache.iotdb.db.engine.querycontext.UnsealedTsFileV2;
 import org.apache.iotdb.db.query.context.QueryContext;
 import org.apache.iotdb.db.query.control.FileReaderManager;
 import org.apache.iotdb.db.query.reader.IAggregateReader;
@@ -62,11 +60,11 @@ public class SequenceDataReaderV2 extends IterateReader {
     this.enableReverse = isReverse;
 
     for (TsFileResourceV2 tsFileResource : sources.getQueryTsFiles()) {
-      if (tsFileResource.getTsFileType().equals(TSFILE_TYPE.SEALED)) {
+      if (tsFileResource.isClosed()) {
         constructSealedTsFileReader(tsFileResource, filter, context, seriesReaders);
       } else {
         seriesReaders.add(
-            new UnSealedTsFileReaderV2((UnsealedTsFileV2) tsFileResource, filter, enableReverse));
+            new UnSealedTsFileReaderV2(tsFileResource, filter, enableReverse));
       }
     }
 
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/UnSealedTsFileReaderV2.java b/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/UnSealedTsFileReaderV2.java
index 97dfce1..d9fdadb 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/UnSealedTsFileReaderV2.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/UnSealedTsFileReaderV2.java
@@ -22,7 +22,7 @@ package org.apache.iotdb.db.query.reader.sequence;
 import java.io.IOException;
 import java.util.Collections;
 import java.util.List;
-import org.apache.iotdb.db.engine.querycontext.UnsealedTsFileV2;
+import org.apache.iotdb.db.engine.filenodeV2.TsFileResourceV2;
 import org.apache.iotdb.db.query.control.FileReaderManager;
 import org.apache.iotdb.db.query.reader.mem.MemChunkReader;
 import org.apache.iotdb.tsfile.file.metadata.ChunkMetaData;
@@ -48,13 +48,13 @@ public class UnSealedTsFileReaderV2 extends IterateReader {
    * @param isReverse true-traverse chunks from behind forward; false-traverse chunks from front to
    * back;
    */
-  public UnSealedTsFileReaderV2(UnsealedTsFileV2 unsealedTsFile, Filter filter, boolean isReverse)
+  public UnSealedTsFileReaderV2(TsFileResourceV2 unsealedTsFile, Filter filter, boolean isReverse)
       throws IOException {
     TsFileSequenceReader unClosedTsFileReader = FileReaderManager.getInstance()
         .get(unsealedTsFile.getFile().getPath(), false);
     ChunkLoader chunkLoader = new ChunkLoaderImpl(unClosedTsFileReader);
 
-    List<ChunkMetaData> metaDataList = unsealedTsFile.getChunkMetaDataList();
+    List<ChunkMetaData> metaDataList = unsealedTsFile.getChunkMetaDatas();
     // reverse chunk metadata list if traversing chunks from behind forward
     if (isReverse && metaDataList != null && !metaDataList.isEmpty()) {
       Collections.reverse(metaDataList);
@@ -69,7 +69,7 @@ public class UnSealedTsFileReaderV2 extends IterateReader {
     }
 
     // data in flushing memtable
-    MemChunkReader memChunkReader = new MemChunkReader(unsealedTsFile.getReadableChunk(), filter);
+    MemChunkReader memChunkReader = new MemChunkReader(unsealedTsFile.getReadOnlyMemChunk(), filter);
     if (isReverse) {
       seriesReaders.add(memChunkReader);
       seriesReaders.add(new FileSeriesIAggregateReader(unSealedReader));