Search in sources :

Example 16 with CheckPointer

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);
}
Also used : FileSystemAbstraction(org.neo4j.io.fs.FileSystemAbstraction) Transaction(org.neo4j.graphdb.Transaction) IndexingService(org.neo4j.kernel.impl.api.index.IndexingService) CheckPointer(org.neo4j.kernel.impl.transaction.log.checkpoint.CheckPointer)

Example 17 with CheckPointer

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)));
}
Also used : Path(java.nio.file.Path) IndexingService(org.neo4j.kernel.impl.api.index.IndexingService) ResourceIterator(org.neo4j.graphdb.ResourceIterator) Label(org.neo4j.graphdb.Label) GraphDatabaseSettings(org.neo4j.configuration.GraphDatabaseSettings) RandomExtension(org.neo4j.test.extension.RandomExtension) CheckPointer(org.neo4j.kernel.impl.transaction.log.checkpoint.CheckPointer) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) Nested(org.junit.jupiter.api.Nested) Node(org.neo4j.graphdb.Node) ExtensionCallback(org.neo4j.test.extension.ExtensionCallback) TestDatabaseManagementServiceBuilder(org.neo4j.test.TestDatabaseManagementServiceBuilder) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) Inject(org.neo4j.test.extension.Inject) Assertions.assertFalse(org.junit.jupiter.api.Assertions.assertFalse) RandomRule(org.neo4j.test.rule.RandomRule) Transaction(org.neo4j.graphdb.Transaction) Path(java.nio.file.Path) DependencyResolver(org.neo4j.common.DependencyResolver) LongStream(java.util.stream.LongStream) IndexFileNames(org.apache.lucene.index.IndexFileNames) Set(java.util.Set) IOException(java.io.IOException) DbmsExtension(org.neo4j.test.extension.DbmsExtension) Collectors(java.util.stream.Collectors) String.format(java.lang.String.format) SimpleTriggerInfo(org.neo4j.kernel.impl.transaction.log.checkpoint.SimpleTriggerInfo) GraphDatabaseAPI(org.neo4j.kernel.internal.GraphDatabaseAPI) Test(org.junit.jupiter.api.Test) TimeUnit(java.util.concurrent.TimeUnit) List(java.util.List) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) FilenameUtils(org.apache.commons.io.FilenameUtils) FileSystemAbstraction(org.neo4j.io.fs.FileSystemAbstraction) Label(org.neo4j.graphdb.Label) Test(org.junit.jupiter.api.Test)

Aggregations

CheckPointer (org.neo4j.kernel.impl.transaction.log.checkpoint.CheckPointer)17 SimpleTriggerInfo (org.neo4j.kernel.impl.transaction.log.checkpoint.SimpleTriggerInfo)10 FileWatcher (org.neo4j.io.fs.watcher.FileWatcher)6 Test (org.junit.jupiter.api.Test)5 Transaction (org.neo4j.graphdb.Transaction)5 Test (org.junit.Test)4 GraphDatabaseAPI (org.neo4j.kernel.internal.GraphDatabaseAPI)4 DependencyResolver (org.neo4j.common.DependencyResolver)3 Label (org.neo4j.graphdb.Label)3 FileSystemAbstraction (org.neo4j.io.fs.FileSystemAbstraction)3 File (java.io.File)2 Path (java.nio.file.Path)2 Matchers.containsString (org.hamcrest.Matchers.containsString)2 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)2 MethodSource (org.junit.jupiter.params.provider.MethodSource)2 IndexingService (org.neo4j.kernel.impl.api.index.IndexingService)2 TestDatabaseManagementServiceBuilder (org.neo4j.test.TestDatabaseManagementServiceBuilder)2 IOException (java.io.IOException)1 String.format (java.lang.String.format)1 List (java.util.List)1