Skip to content

Commit

Permalink
Remove unsupported.dbms.executiontime_limit.enabled system property.
Browse files Browse the repository at this point in the history
Use positive value of `dbms.transaction.timeout` as indication of configured guard.
  • Loading branch information
MishaDemianenko committed Sep 7, 2016
1 parent 67ed213 commit 5874196
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 18 deletions.
Expand Up @@ -209,7 +209,7 @@ public abstract class GraphDatabaseSettings
setting( "unsupported.dbms.transaction_start_timeout", DURATION, "1s" );

@Description("The maximum time interval of a transaction within which it should be completed.")
public static final Setting<Long> transaction_timeout = setting( "dbms.transaction.timeout", DURATION, "60s" );
public static final Setting<Long> transaction_timeout = setting( "dbms.transaction.timeout", DURATION, "0" );

@Description( "The maximum amount of time to wait for running transactions to complete before allowing "
+ "initiated database shutdown to continue" )
Expand Down Expand Up @@ -452,9 +452,6 @@ private static String defaultPageCacheMemory()
public static final Setting<String> forced_kernel_id = setting("unsupported.dbms.kernel_id", STRING, NO_DEFAULT,
illegalValueMessage("has to be a valid kernel identifier", matches("[a-zA-Z0-9]*")));

@Internal
public static final Setting<Boolean> execution_guard_enabled = setting("unsupported.dbms.executiontime_limit.enabled", BOOLEAN, FALSE );

@Description("Amount of time in ms the GC monitor thread will wait before taking another measurement.")
@Internal
public static final Setting<Long> gc_monitor_interval = MonitorGc.Configuration.gc_monitor_wait_time;
Expand Down
Expand Up @@ -357,8 +357,9 @@ public Relationship newRelationshipProxy( long id, long startNodeId, int typeId,

private Guard createGuard( Dependencies deps, Config config, Clock clock, LogService logging )
{
Boolean isGuardEnabled = config.get( GraphDatabaseSettings.execution_guard_enabled );
Guard guard = isGuardEnabled ? createTimeoutGuard( clock, logging ) : EmptyGuard.EMPTY_GUARD;
long configuredTimeout = config.get( GraphDatabaseSettings.transaction_timeout );
boolean isTimeoutConfigured = configuredTimeout > 0;
Guard guard = isTimeoutConfigured ? createTimeoutGuard( clock, logging ) : EmptyGuard.EMPTY_GUARD;
deps.satisfyDependency( guard );
return guard;
}
Expand Down
Expand Up @@ -27,7 +27,6 @@
import org.neo4j.graphdb.DependencyResolver;
import org.neo4j.graphdb.config.Setting;
import org.neo4j.graphdb.factory.GraphDatabaseSettings;
import org.neo4j.kernel.configuration.Settings;
import org.neo4j.kernel.guard.EmptyGuard;
import org.neo4j.kernel.guard.Guard;
import org.neo4j.kernel.guard.TimeoutGuard;
Expand Down Expand Up @@ -101,11 +100,11 @@ private GraphDatabaseAPI startDataBase( Map<Setting<?>,String> disabledGuardConf

private Map<Setting<?>,String> getEnabledGuardConfigMap()
{
return genericMap( GraphDatabaseSettings.execution_guard_enabled, Settings.TRUE );
return genericMap( GraphDatabaseSettings.transaction_timeout, "60s" );
}

private Map<Setting<?>,String> getDisabledGuardConfigMap()
{
return genericMap( GraphDatabaseSettings.execution_guard_enabled, Settings.FALSE );
return genericMap( GraphDatabaseSettings.transaction_timeout, "0" );
}
}
Expand Up @@ -58,7 +58,7 @@ public CypherExecutor( Database database, Config config, LogProvider logProvider
{
this.database = database;
log = logProvider.getLog( getClass() );
guardEnabled = config.get( GraphDatabaseSettings.execution_guard_enabled );
guardEnabled = config.get( GraphDatabaseSettings.transaction_timeout ) > 0;
}

public ExecutionEngine getExecutionEngine()
Expand Down
Expand Up @@ -70,7 +70,7 @@ public void setUp()
@Test
public void startDefaultTransaction() throws Throwable
{
Config config = getGuardEnabledConfig();
Config config = getConfiguredGuardConfig();
CypherExecutor cypherExecutor = new CypherExecutor( database, config, logProvider );
cypherExecutor.start();

Expand All @@ -86,7 +86,7 @@ public void startTransactionWithCustomTimeout() throws Throwable
when( request.getHeader( CypherExecutor.MAX_EXECUTION_TIME_HEADER ) )
.thenReturn( String.valueOf( CUSTOM_TRANSACTION_TIMEOUT ) );

Config config = getGuardEnabledConfig();
Config config = getConfiguredGuardConfig();
CypherExecutor cypherExecutor = new CypherExecutor( database, config, logProvider );
cypherExecutor.start();

Expand All @@ -103,7 +103,7 @@ public void startDefaultTransactionWhenHeaderHasIncorrectValue() throws Throwabl
when( request.getHeader( CypherExecutor.MAX_EXECUTION_TIME_HEADER ) )
.thenReturn( "not a number" );

Config config = getGuardEnabledConfig();
Config config = getConfiguredGuardConfig();
CypherExecutor cypherExecutor = new CypherExecutor( database, config, logProvider );
cypherExecutor.start();

Expand All @@ -120,7 +120,7 @@ public void startDefaultTransactionIfTimeoutIsNegative() throws Throwable
when( request.getHeader( CypherExecutor.MAX_EXECUTION_TIME_HEADER ) )
.thenReturn( "-2" );

Config config = getGuardEnabledConfig();
Config config = getConfiguredGuardConfig();
CypherExecutor cypherExecutor = new CypherExecutor( database, config, logProvider );
cypherExecutor.start();

Expand Down Expand Up @@ -150,9 +150,9 @@ private void initLogProvider()
logProvider = new AssertableLogProvider( true );
}

private Config getGuardEnabledConfig()
private Config getConfiguredGuardConfig()
{
return new Config( MapUtil.stringMap( GraphDatabaseSettings.execution_guard_enabled.name(), "true" ) );
return new Config( MapUtil.stringMap( GraphDatabaseSettings.transaction_timeout.name(), "60s" ) );
}

private void setUpMocks()
Expand Down
Expand Up @@ -43,7 +43,6 @@
import org.neo4j.helpers.collection.MapUtil;
import org.neo4j.kernel.GraphDatabaseDependencies;
import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.configuration.Settings;
import org.neo4j.kernel.guard.GuardTimeoutException;
import org.neo4j.kernel.impl.factory.CommunityEditionModule;
import org.neo4j.kernel.impl.factory.DataSourceModule;
Expand Down Expand Up @@ -223,7 +222,6 @@ private Map<Setting<?>,String> getSettingsMap()
boltConnector.type, "BOLT",
boltConnector.enabled, "true",
boltConnector.encryption_level, GraphDatabaseSettings.BoltConnector.EncryptionLevel.DISABLED.name(),
GraphDatabaseSettings.execution_guard_enabled, Settings.TRUE,
GraphDatabaseSettings.transaction_timeout, "2s",
GraphDatabaseSettings.auth_enabled, "false" );
}
Expand Down

0 comments on commit 5874196

Please sign in to comment.