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));