Beispiel #1
0
 internal TransactionLogFilesContext(AtomicLong rotationThreshold, LogEntryReader logEntryReader, System.Func <long> lastCommittedTransactionIdSupplier, System.Func <long> committingTransactionIdSupplier, LogFileCreationMonitor logFileCreationMonitor, System.Func <LogVersionRepository> logVersionRepositorySupplier, FileSystemAbstraction fileSystem)
 {
     this._rotationThreshold = rotationThreshold;
     this._logEntryReader    = logEntryReader;
     this._lastCommittedTransactionIdSupplier = lastCommittedTransactionIdSupplier;
     this._committingTransactionIdSupplier    = committingTransactionIdSupplier;
     this._logVersionRepositorySupplier       = logVersionRepositorySupplier;
     this._logFileCreationMonitor             = logFileCreationMonitor;
     this._fileSystem = fileSystem;
 }
Beispiel #2
0
 internal TransactionLogFiles(File logsDirectory, string name, TransactionLogFilesContext context)
 {
     this._logFilesContext    = context;
     this._logsDirectory      = logsDirectory;
     this._fileHelper         = new TransactionLogFilesHelper(logsDirectory, name);
     this._fileSystem         = context.FileSystem;
     this._monitor            = context.LogFileCreationMonitor;
     this._logHeaderCache     = new LogHeaderCache(1000);
     this._logFileInformation = new TransactionLogFileInformation(this, _logHeaderCache, context);
     this._logFile            = new TransactionLogFile(this, context);
 }
Beispiel #3
0
        internal ModularDatabaseCreationContext(string databaseName, PlatformModule platformModule, DatabaseEditionContext editionContext, Procedures procedures, GraphDatabaseFacade facade)
        {
            this._databaseName = databaseName;
            this._config       = platformModule.Config;
            DatabaseIdContext idContext = editionContext.IdContext;

            this._idGeneratorFactory = idContext.IdGeneratorFactory;
            this._idController       = idContext.IdController;
            this._databaseLayout     = platformModule.StoreLayout.databaseLayout(databaseName);
            this._logService         = platformModule.Logging;
            this._scheduler          = platformModule.JobScheduler;
            this._globalDependencies = platformModule.Dependencies;
            this._tokenHolders       = editionContext.CreateTokenHolders();
            this._tokenNameLookup    = new NonTransactionalTokenNameLookup(_tokenHolders);
            this._locks = editionContext.CreateLocks();
            this._statementLocksFactory    = editionContext.CreateStatementLocksFactory();
            this._schemaWriteGuard         = editionContext.SchemaWriteGuard;
            this._transactionEventHandlers = new TransactionEventHandlers(facade);
            this._monitors = new Monitors(platformModule.Monitors);
            this._indexingServiceMonitor = _monitors.newMonitor(typeof(IndexingService.Monitor));
            this._physicalLogMonitor     = _monitors.newMonitor(typeof(LogFileCreationMonitor));
            this._fs = platformModule.FileSystem;
            this._transactionStats = editionContext.CreateTransactionMonitor();
            this._databaseHealth   = new DatabaseHealth(platformModule.PanicEventGenerator, _logService.getInternalLog(typeof(DatabaseHealth)));
            this._transactionHeaderInformationFactory = editionContext.HeaderInformationFactory;
            this._commitProcessFactory  = editionContext.CommitProcessFactory;
            this._autoIndexing          = new InternalAutoIndexing(platformModule.Config, _tokenHolders.propertyKeyTokens());
            this._indexConfigStore      = new IndexConfigStore(_databaseLayout, _fs);
            this._explicitIndexProvider = new DefaultExplicitIndexProvider();
            this._pageCache             = platformModule.PageCache;
            this._constraintSemantics   = editionContext.ConstraintSemantics;
            this._tracers    = platformModule.Tracers;
            this._procedures = procedures;
            this._ioLimiter  = editionContext.IoLimiter;
            this._clock      = platformModule.Clock;
            this._databaseAvailabilityGuard    = editionContext.CreateDatabaseAvailabilityGuard(_clock, _logService, _config);
            this._databaseAvailability         = new DatabaseAvailability(_databaseAvailabilityGuard, _transactionStats, platformModule.Clock, AwaitActiveTransactionDeadlineMillis);
            this._coreAPIAvailabilityGuard     = new CoreAPIAvailabilityGuard(_databaseAvailabilityGuard, editionContext.TransactionStartTimeout);
            this._accessCapability             = editionContext.AccessCapability;
            this._storeCopyCheckPointMutex     = new StoreCopyCheckPointMutex();
            this._recoveryCleanupWorkCollector = platformModule.RecoveryCleanupWorkCollector;
            this._databaseInfo               = platformModule.DatabaseInfo;
            this._versionContextSupplier     = platformModule.VersionContextSupplier;
            this._collectionsFactorySupplier = platformModule.CollectionsFactorySupplier;
            this._kernelExtensionFactories   = platformModule.KernelExtensionFactories;
            this._watcherServiceFactory      = editionContext.WatcherServiceFactory;
            this._facade          = facade;
            this._engineProviders = platformModule.EngineProviders;
        }
Beispiel #4
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: TransactionLogFilesContext buildContext() throws java.io.IOException
        internal virtual TransactionLogFilesContext BuildContext()
        {
            if (_logEntryReader == null)
            {
                _logEntryReader = new VersionAwareLogEntryReader();
            }
            if (_logFileCreationMonitor == null)
            {
                _logFileCreationMonitor = LogFileCreationMonitor_Fields.NoMonitor;
            }
            requireNonNull(_fileSystem);
            System.Func <LogVersionRepository> logVersionRepositorySupplier = LogVersionRepositorySupplier;
            System.Func <long> lastCommittedIdSupplier         = lastCommittedIdSupplier();
            System.Func <long> committingTransactionIdSupplier = CommittingIdSupplier();

            // Register listener for rotation threshold
            AtomicLong rotationThreshold = RotationThresholdAndRegisterForUpdates;

            return(new TransactionLogFilesContext(rotationThreshold, _logEntryReader, lastCommittedIdSupplier, committingTransactionIdSupplier, _logFileCreationMonitor, logVersionRepositorySupplier, _fileSystem));
        }
Beispiel #5
0
 public virtual LogFilesBuilder WithLogFileMonitor(LogFileCreationMonitor logFileCreationMonitor)
 {
     this._logFileCreationMonitor = logFileCreationMonitor;
     return(this);
 }