Skip to content

Commit

Permalink
Remove startup statistics, recovered transactions reporting.
Browse files Browse the repository at this point in the history
Remove recovered transactions reporting.
Speedup udc tests to run in reasonable time (a couple of seconds instead
of more than 5 minutes as it was before).
  • Loading branch information
MishaDemianenko committed May 25, 2018
1 parent 319b1ed commit 6cde5a0
Show file tree
Hide file tree
Showing 19 changed files with 95 additions and 240 deletions.
Expand Up @@ -69,7 +69,6 @@
import org.neo4j.kernel.impl.core.LabelTokenHolder; import org.neo4j.kernel.impl.core.LabelTokenHolder;
import org.neo4j.kernel.impl.core.PropertyKeyTokenHolder; import org.neo4j.kernel.impl.core.PropertyKeyTokenHolder;
import org.neo4j.kernel.impl.core.RelationshipTypeTokenHolder; import org.neo4j.kernel.impl.core.RelationshipTypeTokenHolder;
import org.neo4j.kernel.impl.core.StartupStatisticsProvider;
import org.neo4j.kernel.impl.factory.AccessCapability; import org.neo4j.kernel.impl.factory.AccessCapability;
import org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory; import org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory;
import org.neo4j.kernel.impl.factory.OperationalMode; import org.neo4j.kernel.impl.factory.OperationalMode;
Expand Down Expand Up @@ -251,7 +250,6 @@ boolean applicable( DiagnosticsPhase phase )
private final DatabaseHealth databaseHealth; private final DatabaseHealth databaseHealth;
private final LogFileCreationMonitor physicalLogMonitor; private final LogFileCreationMonitor physicalLogMonitor;
private final TransactionHeaderInformationFactory transactionHeaderInformationFactory; private final TransactionHeaderInformationFactory transactionHeaderInformationFactory;
private final StartupStatisticsProvider startupStatistics;
private final CommitProcessFactory commitProcessFactory; private final CommitProcessFactory commitProcessFactory;
private final PageCache pageCache; private final PageCache pageCache;
private final Map<String,IndexImplementation> indexProviders = new HashMap<>(); private final Map<String,IndexImplementation> indexProviders = new HashMap<>();
Expand Down Expand Up @@ -288,7 +286,7 @@ public NeoStoreDataSource( File storeDir, Config config, IdGeneratorFactory idGe
FileSystemAbstraction fs, TransactionMonitor transactionMonitor, DatabaseHealth databaseHealth, FileSystemAbstraction fs, TransactionMonitor transactionMonitor, DatabaseHealth databaseHealth,
LogFileCreationMonitor physicalLogMonitor, LogFileCreationMonitor physicalLogMonitor,
TransactionHeaderInformationFactory transactionHeaderInformationFactory, TransactionHeaderInformationFactory transactionHeaderInformationFactory,
StartupStatisticsProvider startupStatistics, CommitProcessFactory commitProcessFactory, CommitProcessFactory commitProcessFactory,
AutoIndexing autoIndexing, PageCache pageCache, ConstraintSemantics constraintSemantics, Monitors monitors, AutoIndexing autoIndexing, PageCache pageCache, ConstraintSemantics constraintSemantics, Monitors monitors,
Tracers tracers, Procedures procedures, IOLimiter ioLimiter, AvailabilityGuard availabilityGuard, Tracers tracers, Procedures procedures, IOLimiter ioLimiter, AvailabilityGuard availabilityGuard,
SystemNanoClock clock, AccessCapability accessCapability, StoreCopyCheckPointMutex storeCopyCheckPointMutex, SystemNanoClock clock, AccessCapability accessCapability, StoreCopyCheckPointMutex storeCopyCheckPointMutex,
Expand Down Expand Up @@ -317,7 +315,6 @@ public NeoStoreDataSource( File storeDir, Config config, IdGeneratorFactory idGe
this.databaseHealth = databaseHealth; this.databaseHealth = databaseHealth;
this.physicalLogMonitor = physicalLogMonitor; this.physicalLogMonitor = physicalLogMonitor;
this.transactionHeaderInformationFactory = transactionHeaderInformationFactory; this.transactionHeaderInformationFactory = transactionHeaderInformationFactory;
this.startupStatistics = startupStatistics;
this.constraintSemantics = constraintSemantics; this.constraintSemantics = constraintSemantics;
this.monitors = monitors; this.monitors = monitors;
this.tracers = tracers; this.tracers = tracers;
Expand Down Expand Up @@ -450,7 +447,7 @@ public void start() throws IOException
tailScanner, tailScanner,
monitors.newMonitor( RecoveryMonitor.class ), monitors.newMonitor( RecoveryMonitor.class ),
monitors.newMonitor( RecoveryStartInformationProvider.Monitor.class ), monitors.newMonitor( RecoveryStartInformationProvider.Monitor.class ),
logFiles, startupStatistics, logFiles,
storageEngine, transactionLogModule.logicalTransactionStore(), logVersionRepository storageEngine, transactionLogModule.logicalTransactionStore(), logVersionRepository
); );


Expand Down Expand Up @@ -631,7 +628,6 @@ private void buildRecovery(
RecoveryMonitor recoveryMonitor, RecoveryMonitor recoveryMonitor,
RecoveryStartInformationProvider.Monitor positionMonitor, RecoveryStartInformationProvider.Monitor positionMonitor,
final LogFiles logFiles, final LogFiles logFiles,
final StartupStatisticsProvider startupStatistics,
StorageEngine storageEngine, StorageEngine storageEngine,
LogicalTransactionStore logicalTransactionStore, LogicalTransactionStore logicalTransactionStore,
LogVersionRepository logVersionRepository ) LogVersionRepository logVersionRepository )
Expand All @@ -640,8 +636,7 @@ private void buildRecovery(
logicalTransactionStore, logVersionRepository, positionMonitor ); logicalTransactionStore, logVersionRepository, positionMonitor );
CorruptedLogsTruncator logsTruncator = new CorruptedLogsTruncator( storeDir, logFiles, fileSystemAbstraction ); CorruptedLogsTruncator logsTruncator = new CorruptedLogsTruncator( storeDir, logFiles, fileSystemAbstraction );
ProgressReporter progressReporter = new LogProgressReporter( logService.getInternalLog( Recovery.class ) ); ProgressReporter progressReporter = new LogProgressReporter( logService.getInternalLog( Recovery.class ) );
Recovery recovery = new Recovery( recoveryService, startupStatistics, logsTruncator, recoveryMonitor, Recovery recovery = new Recovery( recoveryService, logsTruncator, recoveryMonitor, progressReporter, failOnCorruptedLogFiles );
progressReporter, failOnCorruptedLogFiles );
life.add( recovery ); life.add( recovery );
} }


Expand Down

This file was deleted.

This file was deleted.

Expand Up @@ -48,7 +48,6 @@
import org.neo4j.kernel.impl.core.DatabasePanicEventGenerator; import org.neo4j.kernel.impl.core.DatabasePanicEventGenerator;
import org.neo4j.kernel.impl.core.EmbeddedProxySPI; import org.neo4j.kernel.impl.core.EmbeddedProxySPI;
import org.neo4j.kernel.impl.core.RelationshipTypeTokenHolder; import org.neo4j.kernel.impl.core.RelationshipTypeTokenHolder;
import org.neo4j.kernel.impl.core.StartupStatisticsProvider;
import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge; import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge;
import org.neo4j.kernel.impl.logging.LogService; import org.neo4j.kernel.impl.logging.LogService;
import org.neo4j.kernel.impl.proc.ProcedureConfig; import org.neo4j.kernel.impl.proc.ProcedureConfig;
Expand Down Expand Up @@ -128,8 +127,6 @@ public DataSourceModule( final PlatformModule platformModule, EditionModule edit
// Factories for things that needs to be created later // Factories for things that needs to be created later
PageCache pageCache = platformModule.pageCache; PageCache pageCache = platformModule.pageCache;


StartupStatisticsProvider startupStatistics = deps.satisfyDependency( new StartupStatisticsProvider() );

SchemaWriteGuard schemaWriteGuard = deps.satisfyDependency( editionModule.schemaWriteGuard ); SchemaWriteGuard schemaWriteGuard = deps.satisfyDependency( editionModule.schemaWriteGuard );


DatabasePanicEventGenerator databasePanicEventGenerator = deps.satisfyDependency( DatabasePanicEventGenerator databasePanicEventGenerator = deps.satisfyDependency(
Expand Down Expand Up @@ -171,7 +168,6 @@ public DataSourceModule( final PlatformModule platformModule, EditionModule edit
databaseHealth, databaseHealth,
platformModule.monitors.newMonitor( LogFileCreationMonitor.class ), platformModule.monitors.newMonitor( LogFileCreationMonitor.class ),
editionModule.headerInformationFactory, editionModule.headerInformationFactory,
startupStatistics,
editionModule.commitProcessFactory, editionModule.commitProcessFactory,
autoIndexing, autoIndexing,
pageCache, pageCache,
Expand Down
Expand Up @@ -21,7 +21,6 @@


import java.io.IOException; import java.io.IOException;


import org.neo4j.kernel.impl.core.StartupStatisticsProvider;
import org.neo4j.kernel.impl.transaction.CommittedTransactionRepresentation; import org.neo4j.kernel.impl.transaction.CommittedTransactionRepresentation;
import org.neo4j.kernel.impl.transaction.log.LogPosition; import org.neo4j.kernel.impl.transaction.log.LogPosition;
import org.neo4j.kernel.impl.transaction.log.TransactionCursor; import org.neo4j.kernel.impl.transaction.log.TransactionCursor;
Expand All @@ -43,19 +42,16 @@ public class Recovery extends LifecycleAdapter


private final RecoveryService recoveryService; private final RecoveryService recoveryService;
private final RecoveryMonitor monitor; private final RecoveryMonitor monitor;
private final StartupStatisticsProvider startupStatistics;
private final CorruptedLogsTruncator logsTruncator; private final CorruptedLogsTruncator logsTruncator;
private final ProgressReporter progressReporter; private final ProgressReporter progressReporter;
private final boolean failOnCorruptedLogFiles; private final boolean failOnCorruptedLogFiles;
private int numberOfRecoveredTransactions; private int numberOfRecoveredTransactions;


public Recovery( RecoveryService recoveryService, StartupStatisticsProvider startupStatistics, public Recovery( RecoveryService recoveryService, CorruptedLogsTruncator logsTruncator, RecoveryMonitor monitor, ProgressReporter progressReporter,
CorruptedLogsTruncator logsTruncator, RecoveryMonitor monitor, ProgressReporter progressReporter,
boolean failOnCorruptedLogFiles ) boolean failOnCorruptedLogFiles )
{ {
this.recoveryService = recoveryService; this.recoveryService = recoveryService;
this.monitor = monitor; this.monitor = monitor;
this.startupStatistics = startupStatistics;
this.logsTruncator = logsTruncator; this.logsTruncator = logsTruncator;
this.progressReporter = progressReporter; this.progressReporter = progressReporter;
this.failOnCorruptedLogFiles = failOnCorruptedLogFiles; this.failOnCorruptedLogFiles = failOnCorruptedLogFiles;
Expand Down Expand Up @@ -138,7 +134,6 @@ public void init() throws IOException
logsTruncator.truncate( recoveryToPosition ); logsTruncator.truncate( recoveryToPosition );


recoveryService.transactionsRecovered( lastTransaction, recoveryToPosition ); recoveryService.transactionsRecovered( lastTransaction, recoveryToPosition );
startupStatistics.setNumberOfRecoveredTransactions( numberOfRecoveredTransactions );
monitor.recoveryCompleted( numberOfRecoveredTransactions ); monitor.recoveryCompleted( numberOfRecoveredTransactions );
} }


Expand Down
Expand Up @@ -33,7 +33,6 @@
import org.neo4j.helpers.collection.Pair; import org.neo4j.helpers.collection.Pair;
import org.neo4j.helpers.collection.Visitor; import org.neo4j.helpers.collection.Visitor;
import org.neo4j.io.fs.OpenMode; import org.neo4j.io.fs.OpenMode;
import org.neo4j.kernel.impl.core.StartupStatisticsProvider;
import org.neo4j.kernel.impl.transaction.CommittedTransactionRepresentation; import org.neo4j.kernel.impl.transaction.CommittedTransactionRepresentation;
import org.neo4j.kernel.impl.transaction.SimpleLogVersionRepository; import org.neo4j.kernel.impl.transaction.SimpleLogVersionRepository;
import org.neo4j.kernel.impl.transaction.SimpleTransactionIdStore; import org.neo4j.kernel.impl.transaction.SimpleTransactionIdStore;
Expand Down Expand Up @@ -213,7 +212,7 @@ public boolean visit( CommittedTransactionRepresentation tx ) throws Exception
} }
}; };
} }
}, new StartupStatisticsProvider(), logPruner, monitor, SilentProgressReporter.INSTANCE, false ) ); }, logPruner, monitor, SilentProgressReporter.INSTANCE, false ) );


life.start(); life.start();


Expand Down Expand Up @@ -271,7 +270,7 @@ public void startRecovery()
{ {
fail( "Recovery should not be required" ); fail( "Recovery should not be required" );
} }
}, new StartupStatisticsProvider(), logPruner, monitor, SilentProgressReporter.INSTANCE, false ) ); }, logPruner, monitor, SilentProgressReporter.INSTANCE, false ) );


life.start(); life.start();


Expand Down Expand Up @@ -425,7 +424,7 @@ public void startRecovery()
{ {
recoveryRequired.set( true ); recoveryRequired.set( true );
} }
}, new StartupStatisticsProvider(), logPruner, monitor, SilentProgressReporter.INSTANCE, false ) ); }, logPruner, monitor, SilentProgressReporter.INSTANCE, false ) );


life.start(); life.start();
} }
Expand Down
Expand Up @@ -31,7 +31,6 @@
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;


import org.neo4j.kernel.impl.api.TransactionToApply; import org.neo4j.kernel.impl.api.TransactionToApply;
import org.neo4j.kernel.impl.core.StartupStatisticsProvider;
import org.neo4j.kernel.impl.store.record.NodeRecord; import org.neo4j.kernel.impl.store.record.NodeRecord;
import org.neo4j.kernel.impl.transaction.CommittedTransactionRepresentation; import org.neo4j.kernel.impl.transaction.CommittedTransactionRepresentation;
import org.neo4j.kernel.impl.transaction.SimpleTransactionIdStore; import org.neo4j.kernel.impl.transaction.SimpleTransactionIdStore;
Expand Down Expand Up @@ -226,8 +225,7 @@ public void transactionsRecovered( CommittedTransactionRepresentation lastRecove
LogPosition positionAfterLastRecoveredTransaction ) LogPosition positionAfterLastRecoveredTransaction )
{ {
} }
}, new StartupStatisticsProvider(), logPruner, mock( RecoveryMonitor.class ), SilentProgressReporter.INSTANCE, }, logPruner, mock( RecoveryMonitor.class ), SilentProgressReporter.INSTANCE, false ) );
false ) );


// WHEN // WHEN
try try
Expand Down
Expand Up @@ -24,7 +24,6 @@
import org.mockito.invocation.InvocationOnMock; import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer; import org.mockito.stubbing.Answer;


import org.neo4j.kernel.impl.core.StartupStatisticsProvider;
import org.neo4j.kernel.impl.transaction.CommittedTransactionRepresentation; import org.neo4j.kernel.impl.transaction.CommittedTransactionRepresentation;
import org.neo4j.kernel.impl.transaction.log.LogPosition; import org.neo4j.kernel.impl.transaction.log.LogPosition;
import org.neo4j.kernel.impl.transaction.log.TransactionCursor; import org.neo4j.kernel.impl.transaction.log.TransactionCursor;
Expand All @@ -43,7 +42,6 @@ public class RecoveryProgressIndicatorTest
public void reportProgressOnRecovery() throws Throwable public void reportProgressOnRecovery() throws Throwable
{ {
RecoveryService recoveryService = mock( RecoveryService.class, Answers.RETURNS_MOCKS ); RecoveryService recoveryService = mock( RecoveryService.class, Answers.RETURNS_MOCKS );
StartupStatisticsProvider statisticsProvider = mock( StartupStatisticsProvider.class );
CorruptedLogsTruncator logsTruncator = mock( CorruptedLogsTruncator.class ); CorruptedLogsTruncator logsTruncator = mock( CorruptedLogsTruncator.class );
RecoveryMonitor recoveryMonitor = mock( RecoveryMonitor.class ); RecoveryMonitor recoveryMonitor = mock( RecoveryMonitor.class );
TransactionCursor reverseTransactionCursor = mock( TransactionCursor.class ); TransactionCursor reverseTransactionCursor = mock( TransactionCursor.class );
Expand All @@ -68,7 +66,7 @@ public void reportProgressOnRecovery() throws Throwable
when( recoveryService.getTransactions( recoveryStartPosition ) ).thenReturn( transactionCursor ); when( recoveryService.getTransactions( recoveryStartPosition ) ).thenReturn( transactionCursor );


AssertableProgressReporter progressReporter = new AssertableProgressReporter( expectedMax ); AssertableProgressReporter progressReporter = new AssertableProgressReporter( expectedMax );
Recovery recovery = new Recovery( recoveryService, statisticsProvider, logsTruncator, recoveryMonitor, Recovery recovery = new Recovery( recoveryService, logsTruncator, recoveryMonitor,
progressReporter, true ); progressReporter, true );
recovery.init(); recovery.init();


Expand Down
Expand Up @@ -41,7 +41,6 @@
import org.neo4j.kernel.impl.core.LabelTokenHolder; import org.neo4j.kernel.impl.core.LabelTokenHolder;
import org.neo4j.kernel.impl.core.PropertyKeyTokenHolder; import org.neo4j.kernel.impl.core.PropertyKeyTokenHolder;
import org.neo4j.kernel.impl.core.RelationshipTypeTokenHolder; import org.neo4j.kernel.impl.core.RelationshipTypeTokenHolder;
import org.neo4j.kernel.impl.core.StartupStatisticsProvider;
import org.neo4j.kernel.impl.factory.CanWrite; import org.neo4j.kernel.impl.factory.CanWrite;
import org.neo4j.kernel.impl.factory.CommunityCommitProcessFactory; import org.neo4j.kernel.impl.factory.CommunityCommitProcessFactory;
import org.neo4j.kernel.impl.factory.OperationalMode; import org.neo4j.kernel.impl.factory.OperationalMode;
Expand Down Expand Up @@ -129,7 +128,7 @@ logService, mock( JobScheduler.class, RETURNS_MOCKS ), mock( TokenNameLookup.cla
mock( SchemaWriteGuard.class ), mock( TransactionEventHandlers.class ), IndexingService.NO_MONITOR, mock( SchemaWriteGuard.class ), mock( TransactionEventHandlers.class ), IndexingService.NO_MONITOR,
fs, transactionMonitor, databaseHealth, fs, transactionMonitor, databaseHealth,
mock( LogFileCreationMonitor.class ), TransactionHeaderInformationFactory.DEFAULT, mock( LogFileCreationMonitor.class ), TransactionHeaderInformationFactory.DEFAULT,
new StartupStatisticsProvider(), new CommunityCommitProcessFactory(), mock( InternalAutoIndexing.class ), pageCache, new CommunityCommitProcessFactory(), mock( InternalAutoIndexing.class ), pageCache,
new StandardConstraintSemantics(), monitors, new StandardConstraintSemantics(), monitors,
new Tracers( "null", NullLog.getInstance(), monitors, jobScheduler, clock ), new Tracers( "null", NullLog.getInstance(), monitors, jobScheduler, clock ),
mock( Procedures.class ), mock( Procedures.class ),
Expand Down
Expand Up @@ -39,7 +39,6 @@
import org.neo4j.io.os.OsBeanUtil; import org.neo4j.io.os.OsBeanUtil;
import org.neo4j.kernel.NeoStoreDataSource; import org.neo4j.kernel.NeoStoreDataSource;
import org.neo4j.kernel.configuration.Config; import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.impl.core.StartupStatistics;
import org.neo4j.kernel.impl.store.id.IdGeneratorFactory; import org.neo4j.kernel.impl.store.id.IdGeneratorFactory;
import org.neo4j.kernel.impl.store.id.IdType; import org.neo4j.kernel.impl.store.id.IdType;
import org.neo4j.kernel.impl.transaction.state.DataSourceManager; import org.neo4j.kernel.impl.transaction.state.DataSourceManager;
Expand Down Expand Up @@ -75,22 +74,26 @@


public class DefaultUdcInformationCollector implements UdcInformationCollector public class DefaultUdcInformationCollector implements UdcInformationCollector
{ {
private static final Map<String,String> jarNamesForTags =
MapUtil.stringMap( "spring-", "spring", "(javax.ejb|ejb-jar)", "ejb",
"(weblogic|glassfish|websphere|jboss)", "appserver", "openshift", "openshift", "cloudfoundry",
"cloudfoundry", "(junit|testng)", "test", "jruby", "ruby", "clojure", "clojure", "jython", "python",
"groovy", "groovy", "(tomcat|jetty)", "web", "spring-data-neo4j", "sdn" );

private final Config config; private final Config config;
private final UsageData usageData; private final UsageData usageData;
private final IdGeneratorFactory idGeneratorFactory; private final IdGeneratorFactory idGeneratorFactory;


private String storeId; private String storeId;
private boolean crashPing;


private NeoStoreDataSource neoStoreDataSource; private NeoStoreDataSource neoStoreDataSource;


public DefaultUdcInformationCollector( Config config, DataSourceManager dataSourceManager, DefaultUdcInformationCollector( Config config, DataSourceManager dataSourceManager,
IdGeneratorFactory idGeneratorFactory, StartupStatistics startupStats, UsageData usageData ) IdGeneratorFactory idGeneratorFactory, UsageData usageData )
{ {
this.config = config; this.config = config;
this.usageData = usageData; this.usageData = usageData;
this.idGeneratorFactory = idGeneratorFactory; this.idGeneratorFactory = idGeneratorFactory;
final StartupStatistics startupStatistics = startupStats;


if ( dataSourceManager != null ) if ( dataSourceManager != null )
{ {
Expand All @@ -99,7 +102,6 @@ public DefaultUdcInformationCollector( Config config, DataSourceManager dataSour
@Override @Override
public void registered( NeoStoreDataSource ds ) public void registered( NeoStoreDataSource ds )
{ {
crashPing = startupStatistics.numberOfRecoveredTransactions() > 0;
storeId = Long.toHexString( ds.getStoreId().getRandomId() ); storeId = Long.toHexString( ds.getStoreId().getRandomId() );


neoStoreDataSource = ds; neoStoreDataSource = ds;
Expand All @@ -108,7 +110,6 @@ public void registered( NeoStoreDataSource ds )
@Override @Override
public void unregistered( NeoStoreDataSource ds ) public void unregistered( NeoStoreDataSource ds )
{ {
crashPing = false;
storeId = null; storeId = null;


neoStoreDataSource = null; neoStoreDataSource = null;
Expand All @@ -117,7 +118,7 @@ public void unregistered( NeoStoreDataSource ds )
} }
} }


public static String filterVersionForUDC( String version ) static String filterVersionForUDC( String version )
{ {
if ( !version.contains( "+" ) ) if ( !version.contains( "+" ) )
{ {
Expand Down Expand Up @@ -247,12 +248,6 @@ private Integer determineClusterNameHash()
} }
} }


private final Map<String,String> jarNamesForTags =
MapUtil.stringMap( "spring-", "spring", "(javax.ejb|ejb-jar)", "ejb",
"(weblogic|glassfish|websphere|jboss)", "appserver", "openshift", "openshift", "cloudfoundry",
"cloudfoundry", "(junit|testng)", "test", "jruby", "ruby", "clojure", "clojure", "jython", "python",
"groovy", "groovy", "(tomcat|jetty)", "web", "spring-data-neo4j", "sdn" );

private String determineTags( Map<String,String> jarNamesForTags, String classPath ) private String determineTags( Map<String,String> jarNamesForTags, String classPath )
{ {
StringBuilder result = new StringBuilder(); StringBuilder result = new StringBuilder();
Expand Down Expand Up @@ -423,9 +418,4 @@ public String getStoreId()
return storeId; return storeId;
} }


@Override
public boolean getCrashPing()
{
return crashPing;
}
} }

0 comments on commit 6cde5a0

Please sign in to comment.