You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ji...@apache.org on 2019/02/17 02:16:09 UTC
[incubator-iotdb] branch delete_dev3 updated: fix by comments
This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch delete_dev3
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/delete_dev3 by this push:
new ba51118 fix by comments
new 2be6b6d Merge branch 'delete_dev2' into delete_dev3
ba51118 is described below
commit ba51118541bfd3d66ddb401975cade1a1c156271
Author: jt <jt...@163.com>
AuthorDate: Sun Feb 17 10:13:13 2019 +0800
fix by comments
---
.../engine/bufferwrite/BufferWriteProcessor.java | 4 ++--
.../db/engine/filenode/FileNodeProcessor.java | 12 +++++++++++-
.../iotdb/db/engine/memtable/AbstractMemTable.java | 2 +-
.../apache/iotdb/db/engine/memtable/IMemTable.java | 2 +-
.../io/LocalTextModificationAccessor.java | 3 ++-
.../db/engine/overflow/ioV2/OverflowSupport.java | 5 ++---
.../version/SimpleFileVersionController.java | 22 ++++++++++++++++------
.../engine/modification/DeletionFileNodeTest.java | 2 +-
.../iotdb/db/integration/IoTDBCompleteIT.java | 4 ++--
.../iotdb/db/integration/IoTDBMetadataFetchIT.java | 2 +-
10 files changed, 39 insertions(+), 19 deletions(-)
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/engine/bufferwrite/BufferWriteProcessor.java b/iotdb/src/main/java/org/apache/iotdb/db/engine/bufferwrite/BufferWriteProcessor.java
index 7feac6b..16a5c0d 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/engine/bufferwrite/BufferWriteProcessor.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/engine/bufferwrite/BufferWriteProcessor.java
@@ -515,11 +515,11 @@ public class BufferWriteProcessor extends Processor {
* @param timestamp the upper-bound of deletion time.
*/
public void delete(String deviceId, String measurementId, long timestamp) {
- workMemTable.delele(deviceId, measurementId, timestamp);
+ workMemTable.delete(deviceId, measurementId, timestamp);
if (isFlush) {
// flushing MemTable cannot be directly modified since another thread is reading it
flushMemTable = flushMemTable.copy();
- flushMemTable.delele(deviceId, measurementId, timestamp);
+ flushMemTable.delete(deviceId, measurementId, timestamp);
}
}
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/engine/filenode/FileNodeProcessor.java b/iotdb/src/main/java/org/apache/iotdb/db/engine/filenode/FileNodeProcessor.java
index 88952a5..63eaa9f 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/engine/filenode/FileNodeProcessor.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/engine/filenode/FileNodeProcessor.java
@@ -1884,6 +1884,15 @@ public class FileNodeProcessor extends Processor implements IStatistic {
}
closeBufferWrite();
closeOverflow();
+ for (IntervalFileNode fileNode : newFileNodes) {
+ if (fileNode.getModFile() != null) {
+ try {
+ fileNode.getModFile().close();
+ } catch (IOException e) {
+ throw new FileNodeProcessorException(e);
+ }
+ }
+ }
}
@Override
@@ -1951,7 +1960,8 @@ public class FileNodeProcessor extends Processor implements IStatistic {
currentIntervalFileNode.getModFile().write(deletion);
}
for (IntervalFileNode fileNode : newFileNodes) {
- if(fileNode != currentIntervalFileNode && fileNode.containsDevice(deviceId)) {
+ if(fileNode != currentIntervalFileNode && fileNode.containsDevice(deviceId)
+ && fileNode.getStartTime(deviceId) <= timestamp) {
fileNode.getModFile().write(deletion);
}
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java b/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
index ed95b93..bb95a25 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
@@ -102,7 +102,7 @@ public abstract class AbstractMemTable implements IMemTable {
}
@Override
- public void delele(String deviceId, String measurementId, long timestamp) {
+ public void delete(String deviceId, String measurementId, long timestamp) {
Map<String, IWritableMemChunk> deviceMap = memTableMap.get(deviceId);
if (deviceMap != null) {
IWritableMemChunk chunk = deviceMap.get(measurementId);
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/IMemTable.java b/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/IMemTable.java
index efc9065..4833ffa 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/IMemTable.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/IMemTable.java
@@ -54,7 +54,7 @@ public interface IMemTable {
* @param measurementId the measurementId of the timeseries to be deleted.
* @param timestamp the upper-bound of deletion time.
*/
- void delele(String deviceId, String measurementId, long timestamp);
+ void delete(String deviceId, String measurementId, long timestamp);
/**
* Make a copy of this MemTable.
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/engine/modification/io/LocalTextModificationAccessor.java b/iotdb/src/main/java/org/apache/iotdb/db/engine/modification/io/LocalTextModificationAccessor.java
index 3372540..ee9abaf 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/engine/modification/io/LocalTextModificationAccessor.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/engine/modification/io/LocalTextModificationAccessor.java
@@ -70,9 +70,10 @@ public class LocalTextModificationAccessor implements ModificationReader, Modifi
modificationList.add(decodeModification(line));
}
} catch (IOException e) {
- reader.close();
logger.error("An error occurred when reading modifications, and the remaining modifications "
+ "were ignored.", e);
+ } finally {
+ reader.close();
}
return modificationList;
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/engine/overflow/ioV2/OverflowSupport.java b/iotdb/src/main/java/org/apache/iotdb/db/engine/overflow/ioV2/OverflowSupport.java
index ddf818f..f4f1652 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/engine/overflow/ioV2/OverflowSupport.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/engine/overflow/ioV2/OverflowSupport.java
@@ -25,7 +25,6 @@ import org.apache.iotdb.db.engine.memtable.IMemTable;
import org.apache.iotdb.db.engine.memtable.PrimitiveMemTable;
import org.apache.iotdb.db.engine.memtable.TimeValuePairSorter;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
-import org.apache.iotdb.tsfile.read.common.BatchData;
import org.apache.iotdb.tsfile.write.record.TSRecord;
import org.apache.iotdb.tsfile.write.record.datapoint.DataPoint;
@@ -74,9 +73,9 @@ public class OverflowSupport {
public void delete(String deviceId, String measurementId, long timestamp, boolean isFlushing) {
if (isFlushing) {
memTable = memTable.copy();
- memTable.delele(deviceId, measurementId, timestamp);
+ memTable.delete(deviceId, measurementId, timestamp);
} else {
- memTable.delele(deviceId, measurementId, timestamp);
+ memTable.delete(deviceId, measurementId, timestamp);
}
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/engine/version/SimpleFileVersionController.java b/iotdb/src/main/java/org/apache/iotdb/db/engine/version/SimpleFileVersionController.java
index 5a63806..a38f4be 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/engine/version/SimpleFileVersionController.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/engine/version/SimpleFileVersionController.java
@@ -87,17 +87,27 @@ public class SimpleFileVersionController implements VersionController {
File[] versionFiles = directory.listFiles((dir, name) -> name.startsWith(FILE_PREFIX));
File versionFile = null;
if (versionFiles != null && versionFiles.length > 0) {
- Arrays.sort(versionFiles, Comparator.comparing(File::getName));
- versionFile = versionFiles[versionFiles.length - 1];
- for(int i = 0; i < versionFiles.length - 1; i ++) {
- versionFiles[i].delete();
+ long maxVersion = 0;
+ int maxVersionIndex = 0;
+ for (int i = 0; i < versionFiles.length; i ++) {
+ // extract version from "Version-123456"
+ long fileVersion = Long.parseLong(versionFiles[i].getName().split("-")[1]);
+ if (fileVersion > maxVersion) {
+ maxVersion = fileVersion;
+ maxVersionIndex = i;
+ }
+ }
+ prevVersion = maxVersion;
+ for(int i = 0; i < versionFiles.length; i ++) {
+ if (i != maxVersionIndex) {
+ versionFiles[i].delete();
+ }
}
} else {
versionFile = new File(directory, FILE_PREFIX + "0");
+ prevVersion = 0;
new FileOutputStream(versionFile).close();
}
- // extract version from "Version-123456"
- prevVersion = Long.parseLong(versionFile.getName().split("-")[1]);
// prevent overlapping in case of failure
currVersion = prevVersion + SAVE_INTERVAL;
persist();
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/engine/modification/DeletionFileNodeTest.java b/iotdb/src/test/java/org/apache/iotdb/db/engine/modification/DeletionFileNodeTest.java
index 528c62e..70281fb 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/engine/modification/DeletionFileNodeTest.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/engine/modification/DeletionFileNodeTest.java
@@ -71,7 +71,7 @@ public class DeletionFileNodeTest {
MManager.getInstance().addPathToMTree(processorName + "." + measurements[i], dataType,
encoding, args);
FileNodeManager.getInstance().addTimeSeries(new Path(processorName, measurements[i]), dataType,
- encoding, args);
+ encoding);
}
}
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBCompleteIT.java b/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBCompleteIT.java
index 163a083..0bb646b 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBCompleteIT.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBCompleteIT.java
@@ -104,11 +104,11 @@ public class IoTDBCompleteIT {
+ " StorageGroup: root.vehicle \n" + " }\n" + " },\n"
+ " d5:{\n" + " s9:{\n" + " DataType: FLOAT,\n"
+ " Encoding: PLAIN,\n"
- + " args: {compressor=SNAPPY, MAX_POINT_NUMBER=10},\n"
+ + " args: {MAX_POINT_NUMBER=10, compressor=SNAPPY},\n"
+ " StorageGroup: root.vehicle \n" + " }\n" + " },\n"
+ " d6:{\n" + " s10:{\n" + " DataType: DOUBLE,\n"
+ " Encoding: RLE,\n"
- + " args: {compressor=UNCOMPRESSOR, MAX_POINT_NUMBER=10},\n"
+ + " args: {MAX_POINT_NUMBER=10, compressor=UNCOMPRESSOR},\n"
+ " StorageGroup: root.vehicle \n" + " }\n" + " }\n"
+ " }\n" + "}",
"DELETE TIMESERIES root.vehicle.*", "SHOW TIMESERIES",
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBMetadataFetchIT.java b/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBMetadataFetchIT.java
index a3fa584..94cc02c 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBMetadataFetchIT.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBMetadataFetchIT.java
@@ -366,7 +366,7 @@ public class IoTDBMetadataFetchIT {
+ " StorageGroup: root.ln.wf01.wt01 \n" + " },\n"
+ " temperature:{\n" + " DataType: FLOAT,\n"
+ " Encoding: RLE,\n"
- + " args: {compressor=SNAPPY, MAX_POINT_NUMBER=3},\n"
+ + " args: {MAX_POINT_NUMBER=3, compressor=SNAPPY},\n"
+ " StorageGroup: root.ln.wf01.wt01 \n" + " }\n"
+ " }\n"
+ " }\n" + " }\n" + "}";