use of org.neo4j.kernel.impl.transaction.log.checkpoint.CheckPointer in project neo4j by neo4j.
the class FileWatchIT method notifyAboutLegacyIndexFolderRemoval.
@Test(timeout = TEST_TIMEOUT)
public void notifyAboutLegacyIndexFolderRemoval() throws InterruptedException, IOException {
String monitoredDirectory = getLegacyIndexDirectory(storeDir);
FileWatcher fileWatcher = getFileWatcher(database);
CheckPointer checkPointer = getCheckpointer(database);
DeletionLatchEventListener deletionListener = new DeletionLatchEventListener(monitoredDirectory);
ModificationEventListener modificationEventListener = new ModificationEventListener(MetaDataStore.DEFAULT_NAME);
fileWatcher.addFileWatchEventListener(deletionListener);
fileWatcher.addFileWatchEventListener(modificationEventListener);
do {
createNode(database);
forceCheckpoint(checkPointer);
} while (!modificationEventListener.awaitModificationNotification());
deleteStoreDirectory(storeDir, monitoredDirectory);
deletionListener.awaitDeletionNotification();
logProvider.assertContainsMessageContaining("'" + monitoredDirectory + "' which belongs to the store was deleted while database was running.");
}
use of org.neo4j.kernel.impl.transaction.log.checkpoint.CheckPointer in project neo4j by neo4j.
the class IndexingServiceIntegrationTest method dropIndexRaceWithCheckpoint.
@ParameterizedTest
@MethodSource("parameters")
void dropIndexRaceWithCheckpoint(GraphDatabaseSettings.SchemaIndex schemaIndex) throws Throwable {
setUp(schemaIndex);
CheckPointer checkPointer = getCheckPointer(database);
int nbrOfIndexes = 100;
try (Transaction tx = database.beginTx()) {
for (int i = 0; i < nbrOfIndexes; i++) {
tx.schema().indexFor(Label.label("label")).on("prop" + i).create();
}
tx.commit();
}
try (Transaction tx = database.beginTx()) {
tx.schema().awaitIndexesOnline(1, TimeUnit.HOURS);
tx.commit();
}
AtomicBoolean allIndexesDropped = new AtomicBoolean();
Race race = new Race();
race.addContestant(Race.throwing(() -> {
while (!allIndexesDropped.get()) {
checkPointer.forceCheckPoint(new SimpleTriggerInfo("Test force"));
}
}));
race.addContestant(Race.throwing(() -> {
try (Transaction tx = database.beginTx()) {
tx.schema().getIndexes().forEach(IndexDefinition::drop);
tx.commit();
} finally {
allIndexesDropped.set(true);
}
}));
race.go();
}
use of org.neo4j.kernel.impl.transaction.log.checkpoint.CheckPointer in project neo4j by neo4j.
the class MissingStoreFilesRecoveryIT method createSomeData.
private static void createSomeData(GraphDatabaseAPI databaseApi) throws IOException {
insertData(databaseApi);
CheckPointer checkPointer = databaseApi.getDependencyResolver().resolveDependency(CheckPointer.class);
checkPointer.forceCheckPoint(new SimpleTriggerInfo("forcedCheckpointInTheMiddle"));
insertData(databaseApi);
}
use of org.neo4j.kernel.impl.transaction.log.checkpoint.CheckPointer in project neo4j by neo4j.
the class RecoveryCorruptedTransactionLogIT method generateTransactionsAndRotate.
private static void generateTransactionsAndRotate(GraphDatabaseAPI database, int logFilesToGenerate, boolean checkpoint) throws IOException {
DependencyResolver resolver = database.getDependencyResolver();
LogFiles logFiles = resolver.resolveDependency(LogFiles.class);
CheckPointer checkpointer = resolver.resolveDependency(CheckPointer.class);
while (logFiles.getLogFile().getHighestLogVersion() < logFilesToGenerate) {
logFiles.getLogFile().rotate();
generateTransaction(database);
if (checkpoint) {
checkpointer.forceCheckPoint(new SimpleTriggerInfo("testForcedCheckpoint"));
}
}
}
use of org.neo4j.kernel.impl.transaction.log.checkpoint.CheckPointer in project neo4j by neo4j.
the class TestRecoveryRelationshipTypes method main.
public static void main(String[] args) throws IOException {
if (args.length != 1) {
exit(1);
}
Path storeDir = Path.of(args[0]).toAbsolutePath();
DatabaseManagementService managementService = new TestDatabaseManagementServiceBuilder(storeDir).build();
GraphDatabaseService db = managementService.database(DEFAULT_DATABASE_NAME);
try (Transaction tx = db.beginTx()) {
tx.createNode().createRelationshipTo(tx.createNode(), MyRelTypes.TEST);
tx.commit();
}
CheckPointer checkPointer = ((GraphDatabaseAPI) db).getDependencyResolver().resolveDependency(CheckPointer.class);
checkPointer.forceCheckPoint(new SimpleTriggerInfo("test"));
exit(0);
}
Aggregations