You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by lt...@apache.org on 2019/10/23 01:58:28 UTC
[incubator-iotdb] branch reimpl_sync_V2 updated: fix ut
This is an automated email from the ASF dual-hosted git repository.
lta pushed a commit to branch reimpl_sync_V2
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/reimpl_sync_V2 by this push:
new f472427 fix ut
f472427 is described below
commit f4724276c0ab90001dedbbc8952ae9320ce22101
Author: lta <li...@163.com>
AuthorDate: Wed Oct 23 09:58:12 2019 +0800
fix ut
---
.../engine/storagegroup/StorageGroupProcessor.java | 160 ++++-----
.../db/sync/receiver/load/FileLoaderTest.java | 390 ++++++++++-----------
2 files changed, 258 insertions(+), 292 deletions(-)
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 3e9dda9..2625030 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
@@ -986,100 +986,6 @@ public class StorageGroupProcessor {
}
logger.info("{} a merge task ends", storageGroupName);
}
-//
-// /**
-// * Load a new tsfile to storage group processor
-// *
-// * Firstly, determine the loading type of the file, whether it needs to be loaded in sequence list
-// * or unsequence list.
-// *
-// * Secondly, execute the loading process by the type.
-// *
-// * Finally, update the latestTimeForEachDevice and latestFlushedTimeForEachDevice.
-// *
-// * @param newTsFileResource tsfile resource
-// * @UsedBy sync module.
-// */
-// public void loadNewTsFile(TsFileResource newTsFileResource)
-// throws TsFileProcessorException {
-// File tsfileToBeInserted = newTsFileResource.getFile();
-// writeLock();
-// mergeLock.writeLock().lock();
-// try {
-// boolean isOverlap = false;
-// int preIndex = -1, subsequentIndex = sequenceFileList.size();
-//
-// // check new tsfile
-// outer:
-// for (int i = 0; i < sequenceFileList.size(); i++) {
-// if (sequenceFileList.get(i).getFile().getName().equals(tsfileToBeInserted.getName())) {
-// return;
-// }
-// if (i == sequenceFileList.size() - 1 && sequenceFileList.get(i).getEndTimeMap().isEmpty()) {
-// continue;
-// }
-// boolean hasPre = false, hasSubsequence = false;
-// for (String device : newTsFileResource.getStartTimeMap().keySet()) {
-// if (sequenceFileList.get(i).getStartTimeMap().containsKey(device)) {
-// long startTime1 = sequenceFileList.get(i).getStartTimeMap().get(device);
-// long endTime1 = sequenceFileList.get(i).getEndTimeMap().get(device);
-// long startTime2 = newTsFileResource.getStartTimeMap().get(device);
-// long endTime2 = newTsFileResource.getEndTimeMap().get(device);
-// if (startTime1 > endTime2) {
-// hasSubsequence = true;
-// } else if (startTime2 > endTime1) {
-// hasPre = true;
-// } else {
-// isOverlap = true;
-// break outer;
-// }
-// }
-// }
-// if (hasPre && hasSubsequence) {
-// isOverlap = true;
-// break;
-// }
-// if (!hasPre && hasSubsequence) {
-// subsequentIndex = i;
-// break;
-// }
-// if (hasPre) {
-// preIndex = i;
-// }
-// }
-//
-// // loading tsfile by type
-// if (isOverlap) {
-// loadTsFileByType(LoadTsFileType.LOAD_UNSEQUENCE, tsfileToBeInserted, newTsFileResource,
-// unSequenceFileList.size());
-// } else {
-//
-// // check whether the file name needs to be renamed.
-// if (subsequentIndex != sequenceFileList.size() || preIndex == -1) {
-// String newFileName = getFileNameForLoadingFile(tsfileToBeInserted.getName(), preIndex,
-// subsequentIndex);
-// if (!newFileName.equals(tsfileToBeInserted.getName())) {
-// logger.info("Tsfile {} must be renamed to {} for loading into the sequence list.",
-// tsfileToBeInserted.getName(), newFileName);
-// newTsFileResource.setFile(new File(tsfileToBeInserted.getParentFile(), newFileName));
-// }
-// }
-// loadTsFileByType(LoadTsFileType.LOAD_SEQUENCE, tsfileToBeInserted, newTsFileResource,
-// getBinarySearchIndex(newTsFileResource));
-// }
-//
-// // update latest time map
-// updateLatestTimeMap(newTsFileResource);
-// } catch (TsFileProcessorException | DiskSpaceInsufficientException e) {
-// logger.error("Failed to append the tsfile {} to storage group processor {}.",
-// tsfileToBeInserted.getAbsolutePath(), tsfileToBeInserted.getParentFile().getName());
-// IoTDBDescriptor.getInstance().getConfig().setReadOnly(true);
-// throw new TsFileProcessorException(e);
-// } finally {
-// mergeLock.writeLock().unlock();
-// writeUnlock();
-// }
-// }
/**
* Load a new tsfile to storage group processor
@@ -1100,8 +1006,69 @@ public class StorageGroupProcessor {
writeLock();
mergeLock.writeLock().lock();
try {
- loadTsFileByType(LoadTsFileType.LOAD_SEQUENCE, tsfileToBeInserted, newTsFileResource,
- getBinarySearchIndex(newTsFileResource));
+ boolean isOverlap = false;
+ int preIndex = -1, subsequentIndex = sequenceFileList.size();
+
+ // check new tsfile
+ outer:
+ for (int i = 0; i < sequenceFileList.size(); i++) {
+ if (sequenceFileList.get(i).getFile().getName().equals(tsfileToBeInserted.getName())) {
+ return;
+ }
+ if (i == sequenceFileList.size() - 1 && sequenceFileList.get(i).getEndTimeMap().isEmpty()) {
+ continue;
+ }
+ boolean hasPre = false, hasSubsequence = false;
+ for (String device : newTsFileResource.getStartTimeMap().keySet()) {
+ if (sequenceFileList.get(i).getStartTimeMap().containsKey(device)) {
+ long startTime1 = sequenceFileList.get(i).getStartTimeMap().get(device);
+ long endTime1 = sequenceFileList.get(i).getEndTimeMap().get(device);
+ long startTime2 = newTsFileResource.getStartTimeMap().get(device);
+ long endTime2 = newTsFileResource.getEndTimeMap().get(device);
+ if (startTime1 > endTime2) {
+ hasSubsequence = true;
+ } else if (startTime2 > endTime1) {
+ hasPre = true;
+ } else {
+ isOverlap = true;
+ break outer;
+ }
+ }
+ }
+ if (hasPre && hasSubsequence) {
+ isOverlap = true;
+ break;
+ }
+ if (!hasPre && hasSubsequence) {
+ subsequentIndex = i;
+ break;
+ }
+ if (hasPre) {
+ preIndex = i;
+ }
+ }
+
+ // loading tsfile by type
+ if (isOverlap) {
+ loadTsFileByType(LoadTsFileType.LOAD_UNSEQUENCE, tsfileToBeInserted, newTsFileResource,
+ unSequenceFileList.size());
+ } else {
+
+ // check whether the file name needs to be renamed.
+ if (subsequentIndex != sequenceFileList.size() || preIndex == -1) {
+ String newFileName = getFileNameForLoadingFile(tsfileToBeInserted.getName(), preIndex,
+ subsequentIndex);
+ if (!newFileName.equals(tsfileToBeInserted.getName())) {
+ logger.info("Tsfile {} must be renamed to {} for loading into the sequence list.",
+ tsfileToBeInserted.getName(), newFileName);
+ newTsFileResource.setFile(new File(tsfileToBeInserted.getParentFile(), newFileName));
+ }
+ }
+ loadTsFileByType(LoadTsFileType.LOAD_SEQUENCE, tsfileToBeInserted, newTsFileResource,
+ getBinarySearchIndex(newTsFileResource));
+ }
+
+ // update latest time map
updateLatestTimeMap(newTsFileResource);
} catch (TsFileProcessorException | DiskSpaceInsufficientException e) {
logger.error("Failed to append the tsfile {} to storage group processor {}.",
@@ -1114,7 +1081,6 @@ public class StorageGroupProcessor {
}
}
-
/**
* Get an appropriate filename to ensure the order between files. The tsfile is named after
* ({systemTime}-{versionNum}-{mergeNum}.tsfile).
diff --git a/server/src/test/java/org/apache/iotdb/db/sync/receiver/load/FileLoaderTest.java b/server/src/test/java/org/apache/iotdb/db/sync/receiver/load/FileLoaderTest.java
index b8f0fc1..82b8242 100644
--- a/server/src/test/java/org/apache/iotdb/db/sync/receiver/load/FileLoaderTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/sync/receiver/load/FileLoaderTest.java
@@ -86,202 +86,202 @@ public class FileLoaderTest {
EnvironmentUtils.cleanEnv();
}
-// @Test
-// public void loadNewTsfiles() throws IOException, StorageEngineException {
-// fileLoader = FileLoader.createFileLoader(getReceiverFolderFile());
-// Map<String, List<File>> allFileList = new HashMap<>();
-// Map<String, Set<String>> correctSequenceLoadedFileMap = new HashMap<>();
-//
-// // add some new tsfiles
-// Random r = new Random(0);
-// long time = System.currentTimeMillis();
-// for (int i = 0; i < 3; i++) {
-// for (int j = 0; j < 10; j++) {
-// allFileList.putIfAbsent(SG_NAME + i, new ArrayList<>());
-// correctSequenceLoadedFileMap.putIfAbsent(SG_NAME + i, new HashSet<>());
-// String rand = String.valueOf(r.nextInt(10000));
-// String fileName =
-// getSnapshotFolder() + File.separator + SG_NAME + i + File.separator + (time + i * 100
-// + j) + IoTDBConstant.TSFILE_NAME_SEPARATOR + rand
-// + IoTDBConstant.TSFILE_NAME_SEPARATOR + "0.tsfile";
-// File syncFile = new File(fileName);
-// File dataFile = new File(
-// syncFile.getParentFile().getParentFile().getParentFile().getParentFile()
-// .getParentFile(), IoTDBConstant.SEQUENCE_FLODER_NAME
-// + File.separatorChar + syncFile.getParentFile().getName() + File.separatorChar
-// + syncFile.getName());
-// correctSequenceLoadedFileMap.get(SG_NAME + i).add(dataFile.getAbsolutePath());
-// allFileList.get(SG_NAME + i).add(syncFile);
-// if (!syncFile.getParentFile().exists()) {
-// syncFile.getParentFile().mkdirs();
-// }
-// if (!syncFile.exists() && !syncFile.createNewFile()) {
-// LOGGER.error("Can not create new file {}", syncFile.getPath());
-// }
-// if (!new File(syncFile.getAbsolutePath() + TsFileResource.RESOURCE_SUFFIX).exists()
-// && !new File(syncFile.getAbsolutePath() + TsFileResource.RESOURCE_SUFFIX)
-// .createNewFile()) {
-// LOGGER.error("Can not create new file {}", syncFile.getPath());
-// }
-// TsFileResource tsFileResource = new TsFileResource(syncFile);
-// tsFileResource.getStartTimeMap().put(String.valueOf(i), (long) j * 10);
-// tsFileResource.getEndTimeMap().put(String.valueOf(i), (long) j * 10 + 5);
-// tsFileResource.serialize();
-// }
-// }
-//
-// for (int i = 0; i < 3; i++) {
-// StorageGroupProcessor processor = StorageEngine.getInstance().getProcessor(SG_NAME + i);
-// assertTrue(processor.getSequenceFileList().isEmpty());
-// assertTrue(processor.getUnSequenceFileList().isEmpty());
-// }
-//
-// assertTrue(getReceiverFolderFile().exists());
-// for (List<File> set : allFileList.values()) {
-// for (File newTsFile : set) {
-// if (!newTsFile.getName().endsWith(TsFileResource.RESOURCE_SUFFIX)) {
-// fileLoader.addTsfile(newTsFile);
-// }
-// }
-// }
-// fileLoader.endSync();
-//
-// try {
-// long waitTime = 0;
-// while (FileLoaderManager.getInstance()
-// .containsFileLoader(getReceiverFolderFile().getName())) {
-// Thread.sleep(100);
-// waitTime += 100;
-// LOGGER.info("Has waited for loading new tsfiles {}ms", waitTime);
-// }
-// } catch (InterruptedException e) {
-// LOGGER.error("Fail to wait for loading new tsfiles", e);
-// }
-//
-// assertFalse(new File(getReceiverFolderFile(), SyncConstant.RECEIVER_DATA_FOLDER_NAME).exists());
-// Map<String, Set<String>> sequenceLoadedFileMap = new HashMap<>();
-// for (int i = 0; i < 3; i++) {
-// StorageGroupProcessor processor = StorageEngine.getInstance().getProcessor(SG_NAME + i);
-// sequenceLoadedFileMap.putIfAbsent(SG_NAME + i, new HashSet<>());
+ @Test
+ public void loadNewTsfiles() throws IOException, StorageEngineException {
+ fileLoader = FileLoader.createFileLoader(getReceiverFolderFile());
+ Map<String, List<File>> allFileList = new HashMap<>();
+ Map<String, Set<String>> correctSequenceLoadedFileMap = new HashMap<>();
+
+ // add some new tsfiles
+ Random r = new Random(0);
+ long time = System.currentTimeMillis();
+ for (int i = 0; i < 3; i++) {
+ for (int j = 0; j < 10; j++) {
+ allFileList.putIfAbsent(SG_NAME + i, new ArrayList<>());
+ correctSequenceLoadedFileMap.putIfAbsent(SG_NAME + i, new HashSet<>());
+ String rand = String.valueOf(r.nextInt(10000));
+ String fileName =
+ getSnapshotFolder() + File.separator + SG_NAME + i + File.separator + (time + i * 100
+ + j) + IoTDBConstant.TSFILE_NAME_SEPARATOR + rand
+ + IoTDBConstant.TSFILE_NAME_SEPARATOR + "0.tsfile";
+ File syncFile = new File(fileName);
+ File dataFile = new File(
+ syncFile.getParentFile().getParentFile().getParentFile().getParentFile()
+ .getParentFile(), IoTDBConstant.SEQUENCE_FLODER_NAME
+ + File.separatorChar + syncFile.getParentFile().getName() + File.separatorChar
+ + syncFile.getName());
+ correctSequenceLoadedFileMap.get(SG_NAME + i).add(dataFile.getAbsolutePath());
+ allFileList.get(SG_NAME + i).add(syncFile);
+ if (!syncFile.getParentFile().exists()) {
+ syncFile.getParentFile().mkdirs();
+ }
+ if (!syncFile.exists() && !syncFile.createNewFile()) {
+ LOGGER.error("Can not create new file {}", syncFile.getPath());
+ }
+ if (!new File(syncFile.getAbsolutePath() + TsFileResource.RESOURCE_SUFFIX).exists()
+ && !new File(syncFile.getAbsolutePath() + TsFileResource.RESOURCE_SUFFIX)
+ .createNewFile()) {
+ LOGGER.error("Can not create new file {}", syncFile.getPath());
+ }
+ TsFileResource tsFileResource = new TsFileResource(syncFile);
+ tsFileResource.getStartTimeMap().put(String.valueOf(i), (long) j * 10);
+ tsFileResource.getEndTimeMap().put(String.valueOf(i), (long) j * 10 + 5);
+ tsFileResource.serialize();
+ }
+ }
+
+ for (int i = 0; i < 3; i++) {
+ StorageGroupProcessor processor = StorageEngine.getInstance().getProcessor(SG_NAME + i);
+ assertTrue(processor.getSequenceFileList().isEmpty());
+ assertTrue(processor.getUnSequenceFileList().isEmpty());
+ }
+
+ assertTrue(getReceiverFolderFile().exists());
+ for (List<File> set : allFileList.values()) {
+ for (File newTsFile : set) {
+ if (!newTsFile.getName().endsWith(TsFileResource.RESOURCE_SUFFIX)) {
+ fileLoader.addTsfile(newTsFile);
+ }
+ }
+ }
+ fileLoader.endSync();
+
+ try {
+ long waitTime = 0;
+ while (FileLoaderManager.getInstance()
+ .containsFileLoader(getReceiverFolderFile().getName())) {
+ Thread.sleep(100);
+ waitTime += 100;
+ LOGGER.info("Has waited for loading new tsfiles {}ms", waitTime);
+ }
+ } catch (InterruptedException e) {
+ LOGGER.error("Fail to wait for loading new tsfiles", e);
+ }
+
+ assertFalse(new File(getReceiverFolderFile(), SyncConstant.RECEIVER_DATA_FOLDER_NAME).exists());
+ Map<String, Set<String>> sequenceLoadedFileMap = new HashMap<>();
+ for (int i = 0; i < 3; i++) {
+ StorageGroupProcessor processor = StorageEngine.getInstance().getProcessor(SG_NAME + i);
+ sequenceLoadedFileMap.putIfAbsent(SG_NAME + i, new HashSet<>());
+ assertEquals(10, processor.getSequenceFileList().size());
+ for (TsFileResource tsFileResource : processor.getSequenceFileList()) {
+ sequenceLoadedFileMap.get(SG_NAME + i).add(tsFileResource.getFile().getAbsolutePath());
+ }
+ assertTrue(processor.getUnSequenceFileList().isEmpty());
+ }
+
+ assertEquals(sequenceLoadedFileMap.size(), correctSequenceLoadedFileMap.size());
+ for (Entry<String, Set<String>> entry : correctSequenceLoadedFileMap.entrySet()) {
+ String sg = entry.getKey();
+ assertEquals(entry.getValue().size(), sequenceLoadedFileMap.get(sg).size());
+ assertTrue(entry.getValue().containsAll(sequenceLoadedFileMap.get(sg)));
+ }
+
+ // add some overlap new tsfiles
+ fileLoader = FileLoader.createFileLoader(getReceiverFolderFile());
+ Map<String, Set<String>> correctUnSequenceLoadedFileMap = new HashMap<>();
+ allFileList = new HashMap<>();
+ r = new Random(1);
+ time = System.currentTimeMillis();
+ for (int i = 0; i < 3; i++) {
+ for (int j = 0; j < 10; j++) {
+ allFileList.putIfAbsent(SG_NAME + i, new ArrayList<>());
+ correctUnSequenceLoadedFileMap.putIfAbsent(SG_NAME + i, new HashSet<>());
+ String rand = String.valueOf(r.nextInt(10000));
+ String fileName =
+ getSnapshotFolder() + File.separator + SG_NAME + i + File.separator + (time + i * 100
+ + j) + IoTDBConstant.TSFILE_NAME_SEPARATOR + rand
+ + IoTDBConstant.TSFILE_NAME_SEPARATOR + "0.tsfile";
+ File syncFile = new File(fileName);
+ File dataFile = new File(
+ syncFile.getParentFile().getParentFile().getParentFile().getParentFile()
+ .getParentFile(), IoTDBConstant.UNSEQUENCE_FLODER_NAME
+ + File.separatorChar + syncFile.getParentFile().getName() + File.separatorChar
+ + syncFile.getName());
+ correctUnSequenceLoadedFileMap.get(SG_NAME + i).add(dataFile.getAbsolutePath());
+ allFileList.get(SG_NAME + i).add(syncFile);
+ if (!syncFile.getParentFile().exists()) {
+ syncFile.getParentFile().mkdirs();
+ }
+ if (!syncFile.exists() && !syncFile.createNewFile()) {
+ LOGGER.error("Can not create new file {}", syncFile.getPath());
+ }
+ if (!new File(syncFile.getAbsolutePath() + TsFileResource.RESOURCE_SUFFIX).exists()
+ && !new File(syncFile.getAbsolutePath() + TsFileResource.RESOURCE_SUFFIX)
+ .createNewFile()) {
+ LOGGER.error("Can not create new file {}", syncFile.getPath());
+ }
+ TsFileResource tsFileResource = new TsFileResource(syncFile);
+ tsFileResource.getStartTimeMap().put(String.valueOf(i), (long) j * 10);
+ tsFileResource.getEndTimeMap().put(String.valueOf(i), (long) j * 10 + 3);
+ tsFileResource.serialize();
+ }
+ }
+
+ for (int i = 0; i < 3; i++) {
+ StorageGroupProcessor processor = StorageEngine.getInstance().getProcessor(SG_NAME + i);
+ assertFalse(processor.getSequenceFileList().isEmpty());
+ assertTrue(processor.getUnSequenceFileList().isEmpty());
+ }
+
+ assertTrue(getReceiverFolderFile().exists());
+ for (List<File> set : allFileList.values()) {
+ for (File newTsFile : set) {
+ if (!newTsFile.getName().endsWith(TsFileResource.RESOURCE_SUFFIX)) {
+ fileLoader.addTsfile(newTsFile);
+ }
+ }
+ }
+ fileLoader.endSync();
+
+ try {
+ long waitTime = 0;
+ while (FileLoaderManager.getInstance()
+ .containsFileLoader(getReceiverFolderFile().getName())) {
+ Thread.sleep(100);
+ waitTime += 100;
+ LOGGER.info("Has waited for loading new tsfiles {}ms", waitTime);
+ }
+ } catch (InterruptedException e) {
+ LOGGER.error("Fail to wait for loading new tsfiles", e);
+ }
+
+ assertFalse(new File(getReceiverFolderFile(), SyncConstant.RECEIVER_DATA_FOLDER_NAME).exists());
+ sequenceLoadedFileMap = new HashMap<>();
+ for (int i = 0; i < 3; i++) {
+ StorageGroupProcessor processor = StorageEngine.getInstance().getProcessor(SG_NAME + i);
+ sequenceLoadedFileMap.putIfAbsent(SG_NAME + i, new HashSet<>());
// assertEquals(10, processor.getSequenceFileList().size());
-// for (TsFileResource tsFileResource : processor.getSequenceFileList()) {
-// sequenceLoadedFileMap.get(SG_NAME + i).add(tsFileResource.getFile().getAbsolutePath());
-// }
-// assertTrue(processor.getUnSequenceFileList().isEmpty());
-// }
-//
-// assertEquals(sequenceLoadedFileMap.size(), correctSequenceLoadedFileMap.size());
-// for (Entry<String, Set<String>> entry : correctSequenceLoadedFileMap.entrySet()) {
-// String sg = entry.getKey();
-// assertEquals(entry.getValue().size(), sequenceLoadedFileMap.get(sg).size());
-// assertTrue(entry.getValue().containsAll(sequenceLoadedFileMap.get(sg)));
-// }
-//
-// // add some overlap new tsfiles
-// fileLoader = FileLoader.createFileLoader(getReceiverFolderFile());
-// Map<String, Set<String>> correctUnSequenceLoadedFileMap = new HashMap<>();
-// allFileList = new HashMap<>();
-// r = new Random(1);
-// time = System.currentTimeMillis();
-// for (int i = 0; i < 3; i++) {
-// for (int j = 0; j < 10; j++) {
-// allFileList.putIfAbsent(SG_NAME + i, new ArrayList<>());
-// correctUnSequenceLoadedFileMap.putIfAbsent(SG_NAME + i, new HashSet<>());
-// String rand = String.valueOf(r.nextInt(10000));
-// String fileName =
-// getSnapshotFolder() + File.separator + SG_NAME + i + File.separator + (time + i * 100
-// + j) + IoTDBConstant.TSFILE_NAME_SEPARATOR + rand
-// + IoTDBConstant.TSFILE_NAME_SEPARATOR + "0.tsfile";
-// File syncFile = new File(fileName);
-// File dataFile = new File(
-// syncFile.getParentFile().getParentFile().getParentFile().getParentFile()
-// .getParentFile(), IoTDBConstant.UNSEQUENCE_FLODER_NAME
-// + File.separatorChar + syncFile.getParentFile().getName() + File.separatorChar
-// + syncFile.getName());
-// correctUnSequenceLoadedFileMap.get(SG_NAME + i).add(dataFile.getAbsolutePath());
-// allFileList.get(SG_NAME + i).add(syncFile);
-// if (!syncFile.getParentFile().exists()) {
-// syncFile.getParentFile().mkdirs();
-// }
-// if (!syncFile.exists() && !syncFile.createNewFile()) {
-// LOGGER.error("Can not create new file {}", syncFile.getPath());
-// }
-// if (!new File(syncFile.getAbsolutePath() + TsFileResource.RESOURCE_SUFFIX).exists()
-// && !new File(syncFile.getAbsolutePath() + TsFileResource.RESOURCE_SUFFIX)
-// .createNewFile()) {
-// LOGGER.error("Can not create new file {}", syncFile.getPath());
-// }
-// TsFileResource tsFileResource = new TsFileResource(syncFile);
-// tsFileResource.getStartTimeMap().put(String.valueOf(i), (long) j * 10);
-// tsFileResource.getEndTimeMap().put(String.valueOf(i), (long) j * 10 + 3);
-// tsFileResource.serialize();
-// }
-// }
-//
-// for (int i = 0; i < 3; i++) {
-// StorageGroupProcessor processor = StorageEngine.getInstance().getProcessor(SG_NAME + i);
-// assertFalse(processor.getSequenceFileList().isEmpty());
-// assertTrue(processor.getUnSequenceFileList().isEmpty());
-// }
-//
-// assertTrue(getReceiverFolderFile().exists());
-// for (List<File> set : allFileList.values()) {
-// for (File newTsFile : set) {
-// if (!newTsFile.getName().endsWith(TsFileResource.RESOURCE_SUFFIX)) {
-// fileLoader.addTsfile(newTsFile);
-// }
-// }
-// }
-// fileLoader.endSync();
-//
-// try {
-// long waitTime = 0;
-// while (FileLoaderManager.getInstance()
-// .containsFileLoader(getReceiverFolderFile().getName())) {
-// Thread.sleep(100);
-// waitTime += 100;
-// LOGGER.info("Has waited for loading new tsfiles {}ms", waitTime);
-// }
-// } catch (InterruptedException e) {
-// LOGGER.error("Fail to wait for loading new tsfiles", e);
-// }
-//
-// assertFalse(new File(getReceiverFolderFile(), SyncConstant.RECEIVER_DATA_FOLDER_NAME).exists());
-// sequenceLoadedFileMap = new HashMap<>();
-// for (int i = 0; i < 3; i++) {
-// StorageGroupProcessor processor = StorageEngine.getInstance().getProcessor(SG_NAME + i);
-// sequenceLoadedFileMap.putIfAbsent(SG_NAME + i, new HashSet<>());
-//// assertEquals(10, processor.getSequenceFileList().size());
-// for (TsFileResource tsFileResource : processor.getSequenceFileList()) {
-// sequenceLoadedFileMap.get(SG_NAME + i).add(tsFileResource.getFile().getAbsolutePath());
-// }
-// assertFalse(processor.getUnSequenceFileList().isEmpty());
-// }
-//
-// assertEquals(sequenceLoadedFileMap.size(), correctSequenceLoadedFileMap.size());
-// for (Entry<String, Set<String>> entry : correctSequenceLoadedFileMap.entrySet()) {
-// String sg = entry.getKey();
-// assertEquals(entry.getValue().size(), sequenceLoadedFileMap.get(sg).size());
-// assertTrue(entry.getValue().containsAll(sequenceLoadedFileMap.get(sg)));
-// }
-//
-// Map<String, Set<String>> unsequenceLoadedFileMap = new HashMap<>();
-// for (int i = 0; i < 3; i++) {
-// StorageGroupProcessor processor = StorageEngine.getInstance().getProcessor(SG_NAME + i);
-// unsequenceLoadedFileMap.putIfAbsent(SG_NAME + i, new HashSet<>());
-// assertEquals(10, processor.getUnSequenceFileList().size());
-// for (TsFileResource tsFileResource : processor.getUnSequenceFileList()) {
-// unsequenceLoadedFileMap.get(SG_NAME + i).add(tsFileResource.getFile().getAbsolutePath());
-// }
-// }
-//
-// assertEquals(unsequenceLoadedFileMap.size(), correctUnSequenceLoadedFileMap.size());
-// for (Entry<String, Set<String>> entry : correctUnSequenceLoadedFileMap.entrySet()) {
-// String sg = entry.getKey();
-// assertEquals(entry.getValue().size(), unsequenceLoadedFileMap.get(sg).size());
-// assertTrue(entry.getValue().containsAll(unsequenceLoadedFileMap.get(sg)));
-// }
-// }
+ for (TsFileResource tsFileResource : processor.getSequenceFileList()) {
+ sequenceLoadedFileMap.get(SG_NAME + i).add(tsFileResource.getFile().getAbsolutePath());
+ }
+ assertFalse(processor.getUnSequenceFileList().isEmpty());
+ }
+
+ assertEquals(sequenceLoadedFileMap.size(), correctSequenceLoadedFileMap.size());
+ for (Entry<String, Set<String>> entry : correctSequenceLoadedFileMap.entrySet()) {
+ String sg = entry.getKey();
+ assertEquals(entry.getValue().size(), sequenceLoadedFileMap.get(sg).size());
+ assertTrue(entry.getValue().containsAll(sequenceLoadedFileMap.get(sg)));
+ }
+
+ Map<String, Set<String>> unsequenceLoadedFileMap = new HashMap<>();
+ for (int i = 0; i < 3; i++) {
+ StorageGroupProcessor processor = StorageEngine.getInstance().getProcessor(SG_NAME + i);
+ unsequenceLoadedFileMap.putIfAbsent(SG_NAME + i, new HashSet<>());
+ assertEquals(10, processor.getUnSequenceFileList().size());
+ for (TsFileResource tsFileResource : processor.getUnSequenceFileList()) {
+ unsequenceLoadedFileMap.get(SG_NAME + i).add(tsFileResource.getFile().getAbsolutePath());
+ }
+ }
+
+ assertEquals(unsequenceLoadedFileMap.size(), correctUnSequenceLoadedFileMap.size());
+ for (Entry<String, Set<String>> entry : correctUnSequenceLoadedFileMap.entrySet()) {
+ String sg = entry.getKey();
+ assertEquals(entry.getValue().size(), unsequenceLoadedFileMap.get(sg).size());
+ assertTrue(entry.getValue().containsAll(unsequenceLoadedFileMap.get(sg)));
+ }
+ }
@Test
public void loadDeletedFileName()