Search in sources :

Example 1 with NULL

use of org.neo4j.io.pagecache.tracing.PageCacheTracer.NULL in project neo4j by neo4j.

the class NumberArrayTest method arrays.

public static Collection<NumberArrayTestData> arrays() {
    PageCache pageCache = fixture.pageCache;
    Path dir = fixture.directory;
    NullLog log = NullLog.getInstance();
    Collection<NumberArrayTestData> list = new ArrayList<>();
    Map<String, NumberArrayFactory> factories = new HashMap<>();
    factories.put("HEAP", NumberArrayFactories.HEAP);
    factories.put("OFF_HEAP", NumberArrayFactories.OFF_HEAP);
    factories.put("AUTO_WITHOUT_PAGECACHE", NumberArrayFactories.AUTO_WITHOUT_PAGECACHE);
    factories.put("CHUNKED_FIXED_SIZE", NumberArrayFactories.CHUNKED_FIXED_SIZE);
    factories.put("autoWithPageCacheFallback", NumberArrayFactories.auto(pageCache, NULL, dir, true, NO_MONITOR, log, DEFAULT_DATABASE_NAME));
    factories.put("PageCachedNumberArrayFactory", new PageCachedNumberArrayFactory(pageCache, NULL, dir, log, DEFAULT_DATABASE_NAME));
    for (Map.Entry<String, NumberArrayFactory> entry : factories.entrySet()) {
        String name = entry.getKey() + " => ";
        NumberArrayFactory factory = entry.getValue();
        list.add(arrayData(name + "IntArray", factory.newIntArray(INDEXES, -1, INSTANCE), random -> random.nextInt(1_000_000_000), (array, index, value) -> array.set(index, (Integer) value), IntArray::get));
        list.add(arrayData(name + "DynamicIntArray", factory.newDynamicIntArray(CHUNK_SIZE, -1, INSTANCE), random -> random.nextInt(1_000_000_000), (array, index, value) -> array.set(index, (Integer) value), IntArray::get));
        list.add(arrayData(name + "LongArray", factory.newLongArray(INDEXES, -1, INSTANCE), random -> random.nextLong(1_000_000_000), (array, index, value) -> array.set(index, (Long) value), LongArray::get));
        list.add(arrayData(name + "DynamicLongArray", factory.newDynamicLongArray(CHUNK_SIZE, -1, INSTANCE), random -> random.nextLong(1_000_000_000), (array, index, value) -> array.set(index, (Long) value), LongArray::get));
        list.add(arrayData(name + "ByteArray5", factory.newByteArray(INDEXES, defaultByteArray(5), INSTANCE), random -> random.nextInt(1_000_000_000), (array, index, value) -> array.setInt(index, 1, (Integer) value), (array, index) -> array.getInt(index, 1)));
        list.add(arrayData(name + "DynamicByteArray5", factory.newDynamicByteArray(CHUNK_SIZE, defaultByteArray(5), INSTANCE), random -> random.nextInt(1_000_000_000), (array, index, value) -> array.setInt(index, 1, (Integer) value), (array, index) -> array.getInt(index, 1)));
        Function<RandomRule, Object> valueGenerator = random -> new long[] { random.nextLong(), random.nextInt(), (short) random.nextInt(), (byte) random.nextInt() };
        Writer<ByteArray> writer = (array, index, value) -> {
            long[] values = (long[]) value;
            array.setLong(index, 0, values[0]);
            array.setInt(index, 8, (int) values[1]);
            array.setShort(index, 12, (short) values[2]);
            array.setByte(index, 14, (byte) values[3]);
        };
        Reader<ByteArray> reader = (array, index) -> new long[] { array.getLong(index, 0), array.getInt(index, 8), array.getShort(index, 12), array.getByte(index, 14) };
        list.add(arrayData(name + "ByteArray15", factory.newByteArray(INDEXES, defaultByteArray(15), INSTANCE), valueGenerator, writer, reader));
        list.add(arrayData(name + "DynamicByteArray15", factory.newDynamicByteArray(CHUNK_SIZE, defaultByteArray(15), INSTANCE), valueGenerator, writer, reader));
    }
    return list;
}
Also used : Path(java.nio.file.Path) PageCache(org.neo4j.io.pagecache.PageCache) Arrays(java.util.Arrays) TestFactory(org.junit.jupiter.api.TestFactory) Collection(java.util.Collection) IOException(java.io.IOException) HashMap(java.util.HashMap) NULL(org.neo4j.io.pagecache.tracing.PageCacheTracer.NULL) Function(java.util.function.Function) NO_MONITOR(org.neo4j.internal.batchimport.cache.NumberArrayFactories.NO_MONITOR) ArrayList(java.util.ArrayList) AfterAll(org.junit.jupiter.api.AfterAll) Assertions.assertArrayEquals(org.junit.jupiter.api.Assertions.assertArrayEquals) Integer.max(java.lang.Integer.max) DEFAULT_DATABASE_NAME(org.neo4j.configuration.GraphDatabaseSettings.DEFAULT_DATABASE_NAME) INSTANCE(org.neo4j.memory.EmptyMemoryTracker.INSTANCE) Stream(java.util.stream.Stream) BeforeAll(org.junit.jupiter.api.BeforeAll) RandomRule(org.neo4j.test.rule.RandomRule) Map(java.util.Map) DynamicTest(org.junit.jupiter.api.DynamicTest) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) NullLog(org.neo4j.logging.NullLog) Path(java.nio.file.Path) ThrowingConsumer(org.junit.jupiter.api.function.ThrowingConsumer) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) RandomRule(org.neo4j.test.rule.RandomRule) NullLog(org.neo4j.logging.NullLog) HashMap(java.util.HashMap) Map(java.util.Map) PageCache(org.neo4j.io.pagecache.PageCache)

Example 2 with NULL

use of org.neo4j.io.pagecache.tracing.PageCacheTracer.NULL in project neo4j by neo4j.

the class DynamicIndexStoreViewTest method shouldVisitAllRelationshipsWithoutTokenIndexes.

@Test
void shouldVisitAllRelationshipsWithoutTokenIndexes() {
    StubStorageCursors cursors = new StubStorageCursors().withoutTokenIndexes();
    IndexProxyProvider indexProxies = mock(IndexProxyProvider.class);
    int targetType = 1;
    int notTargetType = 2;
    int[] targetTypeArray = { targetType };
    String targetPropertyKey = "key";
    Value propertyValue = Values.stringValue("value");
    MutableLongList relationshipsWithTargetType = LongLists.mutable.empty();
    long id = 0;
    int wantedPropertyUpdates = 5;
    for (int i = 0; i < wantedPropertyUpdates; i++) {
        // Relationship fitting our target
        cursors.withRelationship(id, 1, targetType, 3).properties(targetPropertyKey, propertyValue);
        relationshipsWithTargetType.add(id++);
        // Relationship with different type
        cursors.withRelationship(id, 1, notTargetType, 3).properties(targetPropertyKey, propertyValue);
        relationshipsWithTargetType.add(id++);
    }
    int targetPropertyKeyId = cursors.propertyKeyTokenHolder().getIdByName(targetPropertyKey);
    IntPredicate propertyKeyIdFilter = value -> value == targetPropertyKeyId;
    DynamicIndexStoreView storeView = dynamicIndexStoreView(cursors, indexProxies);
    TestTokenScanConsumer tokenConsumer = new TestTokenScanConsumer();
    TestPropertyScanConsumer propertyScanConsumer = new TestPropertyScanConsumer();
    StoreScan storeScan = storeView.visitRelationships(targetTypeArray, propertyKeyIdFilter, propertyScanConsumer, tokenConsumer, false, true, NULL, INSTANCE);
    storeScan.run(StoreScan.NO_EXTERNAL_UPDATES);
    assertThat(tokenConsumer.batches.size()).isEqualTo(1);
    assertThat(tokenConsumer.batches.get(0).size()).isEqualTo(relationshipsWithTargetType.size());
}
Also used : ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) IndexProxy(org.neo4j.kernel.impl.api.index.IndexProxy) IndexPrototype.forSchema(org.neo4j.internal.schema.IndexPrototype.forSchema) InternalIndexState(org.neo4j.internal.kernel.api.InternalIndexState) IndexProxyProvider(org.neo4j.kernel.impl.api.index.IndexingService.IndexProxyProvider) Predicates(org.neo4j.function.Predicates) LongLists(org.eclipse.collections.impl.factory.primitive.LongLists) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) Config(org.neo4j.configuration.Config) StoreScan(org.neo4j.kernel.impl.api.index.StoreScan) Value(org.neo4j.values.storable.Value) NULL(org.neo4j.io.pagecache.tracing.PageCacheTracer.NULL) MutableLongList(org.eclipse.collections.api.list.primitive.MutableLongList) NullLogProvider(org.neo4j.logging.NullLogProvider) IntPredicate(java.util.function.IntPredicate) Supplier(java.util.function.Supplier) Values(org.neo4j.values.storable.Values) StorageReader(org.neo4j.storageengine.api.StorageReader) JobSchedulerFactory(org.neo4j.kernel.impl.scheduler.JobSchedulerFactory) JobScheduler(org.neo4j.scheduler.JobScheduler) Mockito.when(org.mockito.Mockito.when) RELATIONSHIP(org.neo4j.common.EntityType.RELATIONSHIP) NO_LOCKS(org.neo4j.kernel.impl.locking.Locks.NO_LOCKS) Test(org.junit.jupiter.api.Test) AfterEach(org.junit.jupiter.api.AfterEach) INSTANCE(org.neo4j.memory.EmptyMemoryTracker.INSTANCE) StubStorageCursors(org.neo4j.storageengine.api.StubStorageCursors) NO_LOCK_SERVICE(org.neo4j.lock.LockService.NO_LOCK_SERVICE) DESCRIPTOR(org.neo4j.kernel.impl.index.schema.TokenIndexProvider.DESCRIPTOR) IndexDescriptor(org.neo4j.internal.schema.IndexDescriptor) NODE(org.neo4j.common.EntityType.NODE) SchemaDescriptor.forAnyEntityTokens(org.neo4j.internal.schema.SchemaDescriptor.forAnyEntityTokens) Mockito.mock(org.mockito.Mockito.mock) MutableLongList(org.eclipse.collections.api.list.primitive.MutableLongList) IntPredicate(java.util.function.IntPredicate) StoreScan(org.neo4j.kernel.impl.api.index.StoreScan) Value(org.neo4j.values.storable.Value) IndexProxyProvider(org.neo4j.kernel.impl.api.index.IndexingService.IndexProxyProvider) StubStorageCursors(org.neo4j.storageengine.api.StubStorageCursors) Test(org.junit.jupiter.api.Test)

Example 3 with NULL

use of org.neo4j.io.pagecache.tracing.PageCacheTracer.NULL in project neo4j by neo4j.

the class ReadEntityIdsStepUsingTokenIndexTest method shouldSeeRecentUpdatesRightInFrontOfExternalUpdatesPoint.

@Test
void shouldSeeRecentUpdatesRightInFrontOfExternalUpdatesPoint() throws Exception {
    // given
    long entityCount = 1_000 + random.nextInt(100);
    BitSet expectedEntityIds = new BitSet();
    BitSet seenEntityIds = new BitSet();
    try (var indexAccessor = indexAccessor()) {
        populateTokenIndex(indexAccessor, expectedEntityIds, entityCount);
        Configuration configuration = withBatchSize(DEFAULT, 100);
        Stage stage = new Stage("Test", null, configuration, 0) {

            {
                add(new ReadEntityIdsStep(control(), configuration, cursorContext -> new TokenIndexScanIdIterator(indexAccessor.newTokenReader(), new int[] { TOKEN_ID }, CursorContext.NULL), NULL, new ControlledUpdatesCheck(indexAccessor, expectedEntityIds), new AtomicBoolean(true)));
                add(new CollectEntityIdsStep(control(), configuration, seenEntityIds));
            }
        };
        // when
        stage.execute().awaitCompletion();
        // then
        assertThat(seenEntityIds).isEqualTo(expectedEntityIds);
    }
}
Also used : RandomExtension(org.neo4j.test.extension.RandomExtension) CursorContext(org.neo4j.io.pagecache.context.CursorContext) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Stage(org.neo4j.internal.batchimport.staging.Stage) Config(org.neo4j.configuration.Config) NULL(org.neo4j.io.pagecache.tracing.PageCacheTracer.NULL) DatabaseLayout(org.neo4j.io.layout.DatabaseLayout) GraphDatabaseSettings.preallocate_logical_logs(org.neo4j.configuration.GraphDatabaseSettings.preallocate_logical_logs) Configuration.withBatchSize(org.neo4j.internal.batchimport.Configuration.withBatchSize) DEFAULT_DATABASE_NAME(org.neo4j.configuration.GraphDatabaseSettings.DEFAULT_DATABASE_NAME) BatchSender(org.neo4j.internal.batchimport.staging.BatchSender) IndexEntryConflictException(org.neo4j.kernel.api.exceptions.index.IndexEntryConflictException) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) IndexUpdater(org.neo4j.kernel.api.index.IndexUpdater) Inject(org.neo4j.test.extension.Inject) RandomRule(org.neo4j.test.rule.RandomRule) StageControl(org.neo4j.internal.batchimport.staging.StageControl) PageCache(org.neo4j.io.pagecache.PageCache) EMPTY_LONG_ARRAY(org.neo4j.collection.PrimitiveLongCollections.EMPTY_LONG_ARRAY) PageCacheExtension(org.neo4j.test.extension.pagecache.PageCacheExtension) Configuration(org.neo4j.internal.batchimport.Configuration) ExternalUpdatesCheck(org.neo4j.kernel.impl.api.index.StoreScan.ExternalUpdatesCheck) TestDirectory(org.neo4j.test.rule.TestDirectory) IndexEntryUpdate(org.neo4j.storageengine.api.IndexEntryUpdate) TokenIndexAccessor(org.neo4j.kernel.impl.index.schema.TokenIndexAccessor) Neo4jLayoutExtension(org.neo4j.test.extension.Neo4jLayoutExtension) IndexFiles(org.neo4j.kernel.impl.index.schema.IndexFiles) Test(org.junit.jupiter.api.Test) RecoveryCleanupWorkCollector.immediate(org.neo4j.index.internal.gbptree.RecoveryCleanupWorkCollector.immediate) ProcessorStep(org.neo4j.internal.batchimport.staging.ProcessorStep) DatabaseIndexContext(org.neo4j.kernel.impl.index.schema.DatabaseIndexContext) SchemaDescriptor(org.neo4j.internal.schema.SchemaDescriptor) EntityType(org.neo4j.common.EntityType) IndexPrototype(org.neo4j.internal.schema.IndexPrototype) AnyTokenSchemaDescriptor(org.neo4j.internal.schema.AnyTokenSchemaDescriptor) BitSet(java.util.BitSet) IndexDescriptor(org.neo4j.internal.schema.IndexDescriptor) GraphDatabaseSettings.neo4j_home(org.neo4j.configuration.GraphDatabaseSettings.neo4j_home) DEFAULT(org.neo4j.internal.batchimport.Configuration.DEFAULT) ONLINE(org.neo4j.kernel.impl.api.index.IndexUpdateMode.ONLINE) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Configuration(org.neo4j.internal.batchimport.Configuration) BitSet(java.util.BitSet) Stage(org.neo4j.internal.batchimport.staging.Stage) Test(org.junit.jupiter.api.Test)

Example 4 with NULL

use of org.neo4j.io.pagecache.tracing.PageCacheTracer.NULL in project neo4j by neo4j.

the class GBPTreeGenericCountsStore method updater.

// === Writes ===
protected CountUpdater updater(long txId, CursorContext cursorContext) {
    // In order to keep the cache limited then check if we need to flush to the tree
    if (txId % 10 == 0) {
        // Although it's somewhat costly to check map size so only do it every N transaction.
        checkCacheSizeAndPotentiallyFlush(cursorContext);
    }
    Lock lock = lock(this.lock.readLock());
    boolean alreadyApplied = txIdInformation.txIdIsAlreadyApplied(txId);
    // Why have this check below? Why should we not apply transactions before started when we have an initial counts builder?
    // Consider the following scenario:
    // - Create node N
    // - Checkpoint
    // - Delete node N
    // - Crash
    // - Delete counts store
    // - Startup, where recovery starts
    // - Recovery replays deletion of N
    // - After recovery the counts store is rebuilt from scratch
    // 
    // The deletion of N on the empty counts store would have resulted in a count of -1, which is not OK to write to the tree,
    // since there can never be a negative amount of, say nodes. The counts store will be rebuilt after recovery anyway,
    // so ignore these transactions.
    boolean inRecoveryOnEmptyCountsStore = needsRebuild && !started;
    if (alreadyApplied || inRecoveryOnEmptyCountsStore) {
        lock.unlock();
        monitor.ignoredTransaction(txId);
        return null;
    }
    return new CountUpdater(new MapWriter(key -> readCountFromTree(key, cursorContext), changes, idSequence, txId), lock);
}
Also used : GBPTreeVisitor(org.neo4j.index.internal.gbptree.GBPTreeVisitor) MetadataMismatchException(org.neo4j.index.internal.gbptree.MetadataMismatchException) Writer(org.neo4j.index.internal.gbptree.Writer) Sets.immutable(org.eclipse.collections.api.factory.Sets.immutable) OutOfOrderSequence(org.neo4j.util.concurrent.OutOfOrderSequence) DatabaseReadOnlyChecker.readOnly(org.neo4j.configuration.helpers.DatabaseReadOnlyChecker.readOnly) Seeker(org.neo4j.index.internal.gbptree.Seeker) GBPTreeConsistencyCheckVisitor(org.neo4j.index.internal.gbptree.GBPTreeConsistencyCheckVisitor) CursorContext(org.neo4j.io.pagecache.context.CursorContext) IOUtils.closeAllUnchecked(org.neo4j.io.IOUtils.closeAllUnchecked) ReporterFactory(org.neo4j.annotations.documented.ReporterFactory) TreeFileNotFoundException(org.neo4j.index.internal.gbptree.TreeFileNotFoundException) ArrayUtils(org.apache.commons.lang3.ArrayUtils) NULL(org.neo4j.io.pagecache.tracing.PageCacheTracer.NULL) ReentrantReadWriteLock(java.util.concurrent.locks.ReentrantReadWriteLock) BASE_TX_ID(org.neo4j.storageengine.api.TransactionIdStore.BASE_TX_ID) Function(java.util.function.Function) GBPTree(org.neo4j.index.internal.gbptree.GBPTree) UnderlyingStorageException(org.neo4j.exceptions.UnderlyingStorageException) PrimitiveLongArrayQueue(org.neo4j.collection.PrimitiveLongArrayQueue) LongHashSet(org.eclipse.collections.impl.set.mutable.primitive.LongHashSet) Map(java.util.Map) PageCacheTracer(org.neo4j.io.pagecache.tracing.PageCacheTracer) RecoveryCleanupWorkCollector(org.neo4j.index.internal.gbptree.RecoveryCleanupWorkCollector) CountsKey.strayTxId(org.neo4j.internal.counts.CountsKey.strayTxId) Path(java.nio.file.Path) ReadWriteLock(java.util.concurrent.locks.ReadWriteLock) MemoryTracker(org.neo4j.memory.MemoryTracker) PrintStream(java.io.PrintStream) PageCache(org.neo4j.io.pagecache.PageCache) EMPTY_LONG_ARRAY(org.neo4j.collection.PrimitiveLongCollections.EMPTY_LONG_ARRAY) ArrayQueueOutOfOrderSequence(org.neo4j.util.concurrent.ArrayQueueOutOfOrderSequence) IOException(java.io.IOException) LongConsumer(java.util.function.LongConsumer) MutableLongSet(org.eclipse.collections.api.set.primitive.MutableLongSet) UncheckedIOException(java.io.UncheckedIOException) AtomicLong(java.util.concurrent.atomic.AtomicLong) Lock(java.util.concurrent.locks.Lock) CountsStorage(org.neo4j.counts.CountsStorage) MIN_STRAY_TX_ID(org.neo4j.internal.counts.CountsKey.MIN_STRAY_TX_ID) Preconditions.checkState(org.neo4j.util.Preconditions.checkState) MAX_STRAY_TX_ID(org.neo4j.internal.counts.CountsKey.MAX_STRAY_TX_ID) DatabaseReadOnlyChecker(org.neo4j.configuration.helpers.DatabaseReadOnlyChecker) ABSENT(org.neo4j.internal.counts.CountsChanges.ABSENT) FileSystemAbstraction(org.neo4j.io.fs.FileSystemAbstraction) ReentrantReadWriteLock(java.util.concurrent.locks.ReentrantReadWriteLock) ReadWriteLock(java.util.concurrent.locks.ReadWriteLock) Lock(java.util.concurrent.locks.Lock)

Example 5 with NULL

use of org.neo4j.io.pagecache.tracing.PageCacheTracer.NULL in project neo4j by neo4j.

the class OnlineIndexUpdatesTest method setUp.

@BeforeEach
void setUp() throws IOException {
    life = new LifeSupport();
    Config config = Config.defaults();
    NullLogProvider nullLogProvider = NullLogProvider.getInstance();
    StoreFactory storeFactory = new StoreFactory(databaseLayout, config, new DefaultIdGeneratorFactory(fileSystem, immediate(), databaseLayout.getDatabaseName()), pageCache, fileSystem, nullLogProvider, NULL, writable());
    neoStores = storeFactory.openAllNeoStores(true);
    GBPTreeCountsStore counts = new GBPTreeCountsStore(pageCache, databaseLayout.countStore(), fileSystem, immediate(), new CountsComputer(neoStores, pageCache, NULL, databaseLayout, INSTANCE, NullLog.getInstance()), writable(), NULL, GBPTreeCountsStore.NO_MONITOR, databaseLayout.getDatabaseName(), 1_000);
    life.add(wrapInLifecycle(counts));
    nodeStore = neoStores.getNodeStore();
    relationshipStore = neoStores.getRelationshipStore();
    PropertyStore propertyStore = neoStores.getPropertyStore();
    schemaCache = new SchemaCache(new StandardConstraintRuleAccessor(), index -> index);
    propertyPhysicalToLogicalConverter = new PropertyPhysicalToLogicalConverter(neoStores.getPropertyStore(), CursorContext.NULL);
    life.start();
    propertyCreator = new PropertyCreator(neoStores.getPropertyStore(), new PropertyTraverser(CursorContext.NULL), CursorContext.NULL, INSTANCE);
    recordAccess = new DirectRecordAccess<>(neoStores.getPropertyStore(), Loaders.propertyLoader(propertyStore, CursorContext.NULL));
}
Also used : BeforeEach(org.junit.jupiter.api.BeforeEach) LifecycleAdapter(org.neo4j.kernel.lifecycle.LifecycleAdapter) NodeCommand(org.neo4j.internal.recordstorage.Command.NodeCommand) CursorContext(org.neo4j.io.pagecache.context.CursorContext) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) Config(org.neo4j.configuration.Config) Value(org.neo4j.values.storable.Value) NO_NEXT_RELATIONSHIP(org.neo4j.kernel.impl.store.record.Record.NO_NEXT_RELATIONSHIP) LifeSupport(org.neo4j.kernel.lifecycle.LifeSupport) NullLogProvider(org.neo4j.logging.NullLogProvider) DatabaseLayout(org.neo4j.io.layout.DatabaseLayout) Collections.singletonList(java.util.Collections.singletonList) NO_LABELS_FIELD(org.neo4j.kernel.impl.store.record.Record.NO_LABELS_FIELD) InlineNodeLabels(org.neo4j.kernel.impl.store.InlineNodeLabels) Assertions.assertFalse(org.junit.jupiter.api.Assertions.assertFalse) CountsComputer(org.neo4j.kernel.impl.store.CountsComputer) NullLog(org.neo4j.logging.NullLog) PageCache(org.neo4j.io.pagecache.PageCache) DatabaseReadOnlyChecker.writable(org.neo4j.configuration.helpers.DatabaseReadOnlyChecker.writable) IndexEntryUpdate(org.neo4j.storageengine.api.IndexEntryUpdate) Neo4jLayoutExtension(org.neo4j.test.extension.Neo4jLayoutExtension) Test(org.junit.jupiter.api.Test) INSTANCE(org.neo4j.memory.EmptyMemoryTracker.INSTANCE) DefaultIdGeneratorFactory(org.neo4j.internal.id.DefaultIdGeneratorFactory) IndexPrototype(org.neo4j.internal.schema.IndexPrototype) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) NodeStore(org.neo4j.kernel.impl.store.NodeStore) IndexDescriptor(org.neo4j.internal.schema.IndexDescriptor) NODE(org.neo4j.common.EntityType.NODE) StoreFactory(org.neo4j.kernel.impl.store.StoreFactory) CountsStore(org.neo4j.counts.CountsStore) NULL(org.neo4j.io.pagecache.tracing.PageCacheTracer.NULL) Values(org.neo4j.values.storable.Values) StandardConstraintRuleAccessor(org.neo4j.storageengine.api.StandardConstraintRuleAccessor) RelationshipStore(org.neo4j.kernel.impl.store.RelationshipStore) NeoStores(org.neo4j.kernel.impl.store.NeoStores) Inject(org.neo4j.test.extension.Inject) GBPTreeCountsStore(org.neo4j.internal.counts.GBPTreeCountsStore) NO_NEXT_PROPERTY(org.neo4j.kernel.impl.store.record.Record.NO_NEXT_PROPERTY) PropertyCommand(org.neo4j.internal.recordstorage.Command.PropertyCommand) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) SchemaDescriptor.fulltext(org.neo4j.internal.schema.SchemaDescriptor.fulltext) PropertyStore(org.neo4j.kernel.impl.store.PropertyStore) Lifecycle(org.neo4j.kernel.lifecycle.Lifecycle) PageCacheExtension(org.neo4j.test.extension.pagecache.PageCacheExtension) Iterator(java.util.Iterator) PropertyRecord(org.neo4j.kernel.impl.store.record.PropertyRecord) IOException(java.io.IOException) RELATIONSHIP(org.neo4j.common.EntityType.RELATIONSHIP) RecoveryCleanupWorkCollector.immediate(org.neo4j.index.internal.gbptree.RecoveryCleanupWorkCollector.immediate) AfterEach(org.junit.jupiter.api.AfterEach) PrimitiveRecord(org.neo4j.kernel.impl.store.record.PrimitiveRecord) FulltextSchemaDescriptor(org.neo4j.internal.schema.FulltextSchemaDescriptor) NodeRecord(org.neo4j.kernel.impl.store.record.NodeRecord) RelationshipRecord(org.neo4j.kernel.impl.store.record.RelationshipRecord) FileSystemAbstraction(org.neo4j.io.fs.FileSystemAbstraction) Config(org.neo4j.configuration.Config) CountsComputer(org.neo4j.kernel.impl.store.CountsComputer) DefaultIdGeneratorFactory(org.neo4j.internal.id.DefaultIdGeneratorFactory) StoreFactory(org.neo4j.kernel.impl.store.StoreFactory) LifeSupport(org.neo4j.kernel.lifecycle.LifeSupport) GBPTreeCountsStore(org.neo4j.internal.counts.GBPTreeCountsStore) NullLogProvider(org.neo4j.logging.NullLogProvider) PropertyStore(org.neo4j.kernel.impl.store.PropertyStore) StandardConstraintRuleAccessor(org.neo4j.storageengine.api.StandardConstraintRuleAccessor) BeforeEach(org.junit.jupiter.api.BeforeEach)

Aggregations

NULL (org.neo4j.io.pagecache.tracing.PageCacheTracer.NULL)5 PageCache (org.neo4j.io.pagecache.PageCache)4 IOException (java.io.IOException)3 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)3 Test (org.junit.jupiter.api.Test)3 Config (org.neo4j.configuration.Config)3 IndexDescriptor (org.neo4j.internal.schema.IndexDescriptor)3 CursorContext (org.neo4j.io.pagecache.context.CursorContext)3 INSTANCE (org.neo4j.memory.EmptyMemoryTracker.INSTANCE)3 Path (java.nio.file.Path)2 Map (java.util.Map)2 Function (java.util.function.Function)2 AfterEach (org.junit.jupiter.api.AfterEach)2 Assertions.assertEquals (org.junit.jupiter.api.Assertions.assertEquals)2 EMPTY_LONG_ARRAY (org.neo4j.collection.PrimitiveLongCollections.EMPTY_LONG_ARRAY)2 NODE (org.neo4j.common.EntityType.NODE)2 RELATIONSHIP (org.neo4j.common.EntityType.RELATIONSHIP)2 DEFAULT_DATABASE_NAME (org.neo4j.configuration.GraphDatabaseSettings.DEFAULT_DATABASE_NAME)2 RecoveryCleanupWorkCollector.immediate (org.neo4j.index.internal.gbptree.RecoveryCleanupWorkCollector.immediate)2 IndexPrototype (org.neo4j.internal.schema.IndexPrototype)2