use of org.neo4j.kernel.impl.transaction.log.checkpoint.CheckPointer in project neo4j by neo4j.
the class IndexBackupIT method prepareDatabase.
private void prepareDatabase(Label label) {
generateData(label);
try (Transaction transaction = database.beginTx()) {
for (int i = 0; i < 10; i++) {
transaction.schema().indexFor(label).on(PROPERTY_PREFIX + i).create();
}
transaction.commit();
}
try (Transaction tx = database.beginTx()) {
tx.schema().awaitIndexesOnline(2, TimeUnit.MINUTES);
}
checkPointer = resolveDependency(CheckPointer.class);
indexingService = resolveDependency(IndexingService.class);
fileSystem = resolveDependency(FileSystemAbstraction.class);
}
use of org.neo4j.kernel.impl.transaction.log.checkpoint.CheckPointer in project neo4j by neo4j.
the class IndexBackupIT method snapshotFilesDeletedWhenSnapshotReleased.
@Test
void snapshotFilesDeletedWhenSnapshotReleased() throws IOException {
Label label = Label.label("testLabel");
prepareDatabase(label);
ResourceIterator<Path> firstCheckpointSnapshot = indexingService.snapshotIndexFiles();
generateData(label);
ResourceIterator<Path> secondCheckpointSnapshot = indexingService.snapshotIndexFiles();
generateData(label);
ResourceIterator<Path> thirdCheckpointSnapshot = indexingService.snapshotIndexFiles();
Set<String> firstSnapshotFileNames = getFileNames(firstCheckpointSnapshot);
Set<String> secondSnapshotFileNames = getFileNames(secondCheckpointSnapshot);
Set<String> thirdSnapshotFileNames = getFileNames(thirdCheckpointSnapshot);
generateData(label);
forceCheckpoint(checkPointer);
assertTrue(firstSnapshotFileNames.stream().map(Path::of).allMatch(file5 -> fileSystem.fileExists(file5)));
assertTrue(secondSnapshotFileNames.stream().map(Path::of).allMatch(file4 -> fileSystem.fileExists(file4)));
assertTrue(thirdSnapshotFileNames.stream().map(Path::of).allMatch(file3 -> fileSystem.fileExists(file3)));
firstCheckpointSnapshot.close();
secondCheckpointSnapshot.close();
thirdCheckpointSnapshot.close();
generateData(label);
forceCheckpoint(checkPointer);
assertFalse(firstSnapshotFileNames.stream().map(Path::of).anyMatch(file2 -> fileSystem.fileExists(file2)));
assertFalse(secondSnapshotFileNames.stream().map(Path::of).anyMatch(file1 -> fileSystem.fileExists(file1)));
assertFalse(thirdSnapshotFileNames.stream().map(Path::of).anyMatch(file -> fileSystem.fileExists(file)));
}
Aggregations