HUDI-148 Small File selection logic for MOR must skip fileIds selected for pending compaction correctly
This commit is contained in:
committed by
vinoth chandar
parent
8c9980f4f5
commit
a1483f2c5f
@@ -351,7 +351,7 @@ public class HoodieTableFileSystemViewTest {
|
||||
assertEquals("Log File Order check", fileName2, logFiles.get(2).getFileName());
|
||||
assertEquals("Log File Order check", fileName1, logFiles.get(3).getFileName());
|
||||
|
||||
fileSliceList = rtView.getLatestFileSlicesBeforeOrOn(partitionPath, deltaInstantTime5)
|
||||
fileSliceList = rtView.getLatestFileSlicesBeforeOrOn(partitionPath, deltaInstantTime5, true)
|
||||
.collect(Collectors.toList());
|
||||
assertEquals("Expect only one file-id", 1, fileSliceList.size());
|
||||
fileSlice = fileSliceList.get(0);
|
||||
@@ -672,7 +672,7 @@ public class HoodieTableFileSystemViewTest {
|
||||
assertTrue(filenames.contains(FSUtils.makeDataFileName(commitTime4, TEST_WRITE_TOKEN, fileId3)));
|
||||
|
||||
filenames = Sets.newHashSet();
|
||||
List<HoodieLogFile> logFilesList = rtView.getLatestFileSlicesBeforeOrOn("2016/05/01", commitTime4)
|
||||
List<HoodieLogFile> logFilesList = rtView.getLatestFileSlicesBeforeOrOn("2016/05/01", commitTime4, true)
|
||||
.map(slice -> slice.getLogFiles()).flatMap(logFileList -> logFileList)
|
||||
.collect(Collectors.toList());
|
||||
assertEquals(logFilesList.size(), 4);
|
||||
@@ -706,7 +706,7 @@ public class HoodieTableFileSystemViewTest {
|
||||
}
|
||||
|
||||
logFilesList =
|
||||
rtView.getLatestFileSlicesBeforeOrOn("2016/05/01", commitTime3).map(slice -> slice.getLogFiles())
|
||||
rtView.getLatestFileSlicesBeforeOrOn("2016/05/01", commitTime3, true).map(slice -> slice.getLogFiles())
|
||||
.flatMap(logFileList -> logFileList).collect(Collectors.toList());
|
||||
assertEquals(logFilesList.size(), 1);
|
||||
assertTrue(logFilesList.get(0).getFileName()
|
||||
@@ -1135,7 +1135,7 @@ public class HoodieTableFileSystemViewTest {
|
||||
assertEquals("Log File Order check", fileName3, logFiles.get(1).getFileName());
|
||||
assertEquals("Log File Order check", fileName1, logFiles.get(2).getFileName());
|
||||
|
||||
fileSliceList = rtView.getLatestFileSlicesBeforeOrOn(partitionPath, deltaInstantTime5)
|
||||
fileSliceList = rtView.getLatestFileSlicesBeforeOrOn(partitionPath, deltaInstantTime5, true)
|
||||
.collect(Collectors.toList());
|
||||
assertEquals("Expect only one file-id", 1, fileSliceList.size());
|
||||
fileSlice = fileSliceList.get(0);
|
||||
@@ -1147,6 +1147,11 @@ public class HoodieTableFileSystemViewTest {
|
||||
assertEquals("Log files must include only those after compaction request", 2, logFiles.size());
|
||||
assertEquals("Log File Order check", fileName4, logFiles.get(0).getFileName());
|
||||
assertEquals("Log File Order check", fileName3, logFiles.get(1).getFileName());
|
||||
|
||||
// Check getLatestFileSlicesBeforeOrOn excluding fileIds in pending compaction
|
||||
fileSliceList = rtView.getLatestFileSlicesBeforeOrOn(partitionPath, deltaInstantTime5, false)
|
||||
.collect(Collectors.toList());
|
||||
assertEquals("Expect empty list as file-id is in pending compaction", 0, fileSliceList.size());
|
||||
});
|
||||
|
||||
Assert.assertEquals(3, fsView.getPendingCompactionOperations().count());
|
||||
|
||||
Reference in New Issue
Block a user