Search in sources :

Example 36 with GraphDatabaseAPI

use of org.neo4j.kernel.internal.GraphDatabaseAPI in project neo4j by neo4j.

the class TransactionGuardIntegrationTest method startCustomDatabase.

private GraphDatabaseAPI startCustomDatabase(File storeDir, Map<Setting<?>, String> configMap) {
    CustomClockCommunityFacadeFactory customClockCommunityFacadeFactory = new CustomClockCommunityFacadeFactory();
    GraphDatabaseBuilder databaseBuilder = new CustomGuardTestTestGraphDatabaseFactory(customClockCommunityFacadeFactory).newImpermanentDatabaseBuilder(storeDir);
    configMap.forEach(databaseBuilder::setConfig);
    GraphDatabaseAPI database = (GraphDatabaseAPI) databaseBuilder.newGraphDatabase();
    cleanupRule.add(database);
    return database;
}
Also used : GraphDatabaseAPI(org.neo4j.kernel.internal.GraphDatabaseAPI) GraphDatabaseBuilder(org.neo4j.graphdb.factory.GraphDatabaseBuilder)

Example 37 with GraphDatabaseAPI

use of org.neo4j.kernel.internal.GraphDatabaseAPI in project neo4j by neo4j.

the class TransactionGuardIntegrationTest method terminateLongRunningTransaction.

@Test
public void terminateLongRunningTransaction() {
    GraphDatabaseAPI database = startDatabaseWithTimeout();
    try (Transaction transaction = database.beginTx()) {
        fakeClock.forward(3, TimeUnit.SECONDS);
        transaction.success();
        database.createNode();
        fail("Transaction should be already terminated.");
    } catch (GuardTimeoutException e) {
        assertThat(e.getMessage(), startsWith("Transaction timeout."));
        assertEquals(e.status(), Status.Transaction.TransactionTimedOut);
    }
    assertDatabaseDoesNotHaveNodes(database);
}
Also used : GraphDatabaseAPI(org.neo4j.kernel.internal.GraphDatabaseAPI) Transaction(org.neo4j.graphdb.Transaction) GuardTimeoutException(org.neo4j.kernel.guard.GuardTimeoutException) Test(org.junit.Test)

Example 38 with GraphDatabaseAPI

use of org.neo4j.kernel.internal.GraphDatabaseAPI in project neo4j by neo4j.

the class TransactionGuardIntegrationTest method terminateLongRunningQueryTransaction.

@Test
public void terminateLongRunningQueryTransaction() {
    GraphDatabaseAPI database = startDatabaseWithTimeout();
    try (Transaction transaction = database.beginTx()) {
        fakeClock.forward(3, TimeUnit.SECONDS);
        transaction.success();
        database.execute("create (n)");
        fail("Transaction should be already terminated.");
    } catch (GuardTimeoutException e) {
        assertThat(e.getMessage(), startsWith("Transaction timeout."));
    }
    assertDatabaseDoesNotHaveNodes(database);
}
Also used : GraphDatabaseAPI(org.neo4j.kernel.internal.GraphDatabaseAPI) Transaction(org.neo4j.graphdb.Transaction) GuardTimeoutException(org.neo4j.kernel.guard.GuardTimeoutException) Test(org.junit.Test)

Example 39 with GraphDatabaseAPI

use of org.neo4j.kernel.internal.GraphDatabaseAPI in project neo4j by neo4j.

the class BackupServiceIT method shouldHandleBackupWhenLogFilesHaveBeenDeleted.

@Test
public void shouldHandleBackupWhenLogFilesHaveBeenDeleted() throws Exception {
    // Given
    defaultBackupPortHostParams();
    Config defaultConfig = dbRule.getConfigCopy();
    dbRule.setConfig(GraphDatabaseSettings.keep_logical_logs, "false");
    GraphDatabaseAPI db = dbRule.getGraphDatabaseAPI();
    BackupService backupService = backupService();
    createAndIndexNode(db, 1);
    // A full backup
    backupService.doIncrementalBackupOrFallbackToFull(BACKUP_HOST, backupPort, backupDir.getAbsoluteFile(), ConsistencyCheck.NONE, defaultConfig, BackupClient.BIG_READ_TIMEOUT, false);
    // And the log the backup uses is rotated out
    createAndIndexNode(db, 2);
    db = deleteLogFilesAndRestart();
    createAndIndexNode(db, 3);
    db = deleteLogFilesAndRestart();
    // when
    backupService.doIncrementalBackupOrFallbackToFull(BACKUP_HOST, backupPort, backupDir.getAbsoluteFile(), ConsistencyCheck.NONE, defaultConfig, BackupClient.BIG_READ_TIMEOUT, false);
    // Then
    db.shutdown();
    assertEquals(getDbRepresentation(), getBackupDbRepresentation());
}
Also used : GraphDatabaseAPI(org.neo4j.kernel.internal.GraphDatabaseAPI) Config(org.neo4j.kernel.configuration.Config) Test(org.junit.Test)

Example 40 with GraphDatabaseAPI

use of org.neo4j.kernel.internal.GraphDatabaseAPI in project neo4j by neo4j.

the class BackupServiceIT method shouldPrintThatIncrementalBackupIsPerformedAndFallingBackToFull.

@Test
public void shouldPrintThatIncrementalBackupIsPerformedAndFallingBackToFull() throws Exception {
    defaultBackupPortHostParams();
    Config defaultConfig = dbRule.getConfigCopy();
    dbRule.setConfig(GraphDatabaseSettings.keep_logical_logs, "false");
    // have logs rotated on every transaction
    GraphDatabaseAPI db = dbRule.getGraphDatabaseAPI();
    createAndIndexNode(db, 1);
    // A full backup
    backupService().doFullBackup(BACKUP_HOST, backupPort, backupDir, ConsistencyCheck.NONE, defaultConfig, BackupClient.BIG_READ_TIMEOUT, false);
    // And the log the backup uses is rotated out
    createAndIndexNode(db, 2);
    rotateAndCheckPoint(db);
    createAndIndexNode(db, 3);
    rotateAndCheckPoint(db);
    createAndIndexNode(db, 4);
    rotateAndCheckPoint(db);
    final Log log = mock(Log.class);
    LogProvider logProvider = new LogProvider() {

        @Override
        public Log getLog(Class loggingClass) {
            return log;
        }

        @Override
        public Log getLog(String name) {
            return log;
        }
    };
    backupService(logProvider).doIncrementalBackupOrFallbackToFull(BACKUP_HOST, backupPort, backupDir, ConsistencyCheck.NONE, dbRule.getConfigCopy(), BackupClient.BIG_READ_TIMEOUT, false);
    verify(log).info("Previous backup found, trying incremental backup.");
    verify(log).info("Existing backup is too far out of date, a new full backup will be performed.");
}
Also used : NullLogProvider(org.neo4j.logging.NullLogProvider) FormattedLogProvider(org.neo4j.logging.FormattedLogProvider) LogProvider(org.neo4j.logging.LogProvider) GraphDatabaseAPI(org.neo4j.kernel.internal.GraphDatabaseAPI) Log(org.neo4j.logging.Log) Config(org.neo4j.kernel.configuration.Config) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) Test(org.junit.Test)

Aggregations

GraphDatabaseAPI (org.neo4j.kernel.internal.GraphDatabaseAPI)133 Test (org.junit.Test)96 Transaction (org.neo4j.graphdb.Transaction)50 File (java.io.File)25 TestGraphDatabaseFactory (org.neo4j.test.TestGraphDatabaseFactory)25 Node (org.neo4j.graphdb.Node)20 DependencyResolver (org.neo4j.graphdb.DependencyResolver)19 Config (org.neo4j.kernel.configuration.Config)15 GraphDatabaseService (org.neo4j.graphdb.GraphDatabaseService)12 IOException (java.io.IOException)8 PageCache (org.neo4j.io.pagecache.PageCache)8 RecordStorageEngine (org.neo4j.kernel.impl.storageengine.impl.recordstorage.RecordStorageEngine)8 Lifespan (org.neo4j.kernel.lifecycle.Lifespan)8 KernelTransaction (org.neo4j.kernel.api.KernelTransaction)7 ThreadToStatementContextBridge (org.neo4j.kernel.impl.core.ThreadToStatementContextBridge)6 TransactionIdStore (org.neo4j.kernel.impl.transaction.log.TransactionIdStore)6 Before (org.junit.Before)5 Label (org.neo4j.graphdb.Label)5 GraphDatabaseBuilder (org.neo4j.graphdb.factory.GraphDatabaseBuilder)5 GuardTimeoutException (org.neo4j.kernel.guard.GuardTimeoutException)5