Example #1
0
        private DatabaseIdContext CreateBufferingIdContext <T1>(System.Func <T1> idGeneratorFactoryProvider, JobScheduler jobScheduler, string databaseName) where T1 : Org.Neo4j.Kernel.impl.store.id.IdGeneratorFactory
        {
            IdGeneratorFactory          idGeneratorFactory          = idGeneratorFactoryProvider(databaseName);
            BufferingIdGeneratorFactory bufferingIdGeneratorFactory = new BufferingIdGeneratorFactory(idGeneratorFactory, _eligibleForIdReuse, _idTypeConfigurationProvider);
            BufferedIdController        bufferingController         = CreateBufferedIdController(bufferingIdGeneratorFactory, jobScheduler);

            return(CreateIdContext(bufferingIdGeneratorFactory, bufferingController));
        }
Example #2
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void createCommunityBufferedContextByDefault()
        internal virtual void CreateCommunityBufferedContextByDefault()
        {
            IdContextFactory  idContextFactory = IdContextFactoryBuilder.Of(_fs, _jobScheduler).build();
            DatabaseIdContext idContext        = idContextFactory.CreateIdContext("database");

            IdGeneratorFactory idGeneratorFactory = idContext.IdGeneratorFactory;

            assertThat(idContext.IdController, instanceOf(typeof(BufferedIdController)));
            assertThat(idGeneratorFactory, instanceOf(typeof(BufferingIdGeneratorFactory)));

            (( BufferingIdGeneratorFactory )idGeneratorFactory).initialize(() => mock(typeof(KernelTransactionsSnapshot)));
            idGeneratorFactory.Open(_testDirectory.file("a"), IdType.NODE, () => 0, 100).Dispose();
            idGeneratorFactory.Open(_testDirectory.file("b"), IdType.PROPERTY, () => 0, 100).Dispose();

            BufferingIdGeneratorFactory bufferedFactory = ( BufferingIdGeneratorFactory )idGeneratorFactory;

            assertThat(bufferedFactory.Get(IdType.NODE), instanceOf(typeof(IdGeneratorImpl)));
            assertThat(bufferedFactory.Get(IdType.PROPERTY), not(instanceOf(typeof(IdGeneratorImpl))));
        }
Example #3
0
        private RecordStorageEngine Get(FileSystemAbstraction fs, PageCache pageCache, IndexProvider indexProvider, DatabaseHealth databaseHealth, DatabaseLayout databaseLayout, System.Func <BatchTransactionApplierFacade, BatchTransactionApplierFacade> transactionApplierTransformer, Monitors monitors, LockService lockService)
        {
            IdGeneratorFactory    idGeneratorFactory          = new EphemeralIdGenerator.Factory();
            ExplicitIndexProvider explicitIndexProviderLookup = mock(typeof(ExplicitIndexProvider));

            when(explicitIndexProviderLookup.AllIndexProviders()).thenReturn(Iterables.empty());
            IndexConfigStore indexConfigStore = new IndexConfigStore(databaseLayout, fs);
            JobScheduler     scheduler        = _life.add(createScheduler());
            Config           config           = Config.defaults(GraphDatabaseSettings.default_schema_provider, indexProvider.ProviderDescriptor.name());

            Dependencies dependencies = new Dependencies();

            dependencies.SatisfyDependency(indexProvider);

            BufferingIdGeneratorFactory bufferingIdGeneratorFactory = new BufferingIdGeneratorFactory(idGeneratorFactory, Org.Neo4j.Kernel.impl.store.id.IdReuseEligibility_Fields.Always, new CommunityIdTypeConfigurationProvider());
            DefaultIndexProviderMap     indexProviderMap            = new DefaultIndexProviderMap(dependencies, config);
            NullLogProvider             nullLogProvider             = NullLogProvider.Instance;

            _life.add(indexProviderMap);
            return(_life.add(new ExtendedRecordStorageEngine(databaseLayout, config, pageCache, fs, nullLogProvider, nullLogProvider, mockedTokenHolders(), mock(typeof(SchemaState)), new StandardConstraintSemantics(), scheduler, mock(typeof(TokenNameLookup)), lockService, indexProviderMap, IndexingService.NO_MONITOR, databaseHealth, explicitIndexProviderLookup, indexConfigStore, new SynchronizedArrayIdOrderingQueue(), idGeneratorFactory, new BufferedIdController(bufferingIdGeneratorFactory, scheduler), transactionApplierTransformer, monitors, RecoveryCleanupWorkCollector.immediate(), OperationalMode.single)));
        }
Example #4
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void createContextWithProvidedReusabilityCheck()
        internal virtual void CreateContextWithProvidedReusabilityCheck()
        {
            IdReuseEligibility reuseEligibility         = mock(typeof(IdReuseEligibility));
            IdContextFactory   contextFactory           = IdContextFactoryBuilder.Of(_fs, _jobScheduler).withIdReuseEligibility(reuseEligibility).build();
            DatabaseIdContext  idContext                = contextFactory.CreateIdContext("database");
            IdGeneratorFactory bufferedGeneratorFactory = idContext.IdGeneratorFactory;

            assertThat(bufferedGeneratorFactory, instanceOf(typeof(BufferingIdGeneratorFactory)));
            BufferingIdGeneratorFactory bufferedFactory = ( BufferingIdGeneratorFactory )bufferedGeneratorFactory;

            KernelTransactionsSnapshot snapshot = mock(typeof(KernelTransactionsSnapshot));

            when(snapshot.AllClosed()).thenReturn(true);

            bufferedFactory.Initialize(() => snapshot);
            using (IdGenerator idGenerator = bufferedFactory.Open(_testDirectory.file("a"), IdType.PROPERTY, () => 100, 100))
            {
                idGenerator.FreeId(15);

                bufferedFactory.Maintenance();
                verify(reuseEligibility).isEligible(snapshot);
            }
        }
Example #5
0
 public BufferedIdController(BufferingIdGeneratorFactory bufferingIdGeneratorFactory, JobScheduler scheduler)
 {
     this._bufferingIdGeneratorFactory = bufferingIdGeneratorFactory;
     this._scheduler = scheduler;
 }
Example #6
0
 private static BufferedIdController CreateBufferedIdController(BufferingIdGeneratorFactory idGeneratorFactory, JobScheduler scheduler)
 {
     return(new BufferedIdController(idGeneratorFactory, scheduler));
 }