use of org.neo4j.kernel.impl.store.NodeStore in project neo4j by neo4j.
the class StoreProcessorTaskTest method singlePassShouldOnlyProcessTheStoreOnce.
@Test
public void singlePassShouldOnlyProcessTheStoreOnce() throws Exception {
// given
StoreProcessor singlePassProcessor = mock(StoreProcessor.class);
when(singlePassProcessor.getStage()).thenReturn(Stage.SEQUENTIAL_FORWARD);
NodeStore store = mock(NodeStore.class);
when(store.getStorageFileName()).thenReturn(new File("node-store"));
StoreProcessorTask<NodeRecord> task = new StoreProcessorTask<>("nodes", Statistics.NONE, 1, store, null, "nodes", ProgressMonitorFactory.NONE.multipleParts("check"), CacheAccess.EMPTY, singlePassProcessor, QueueDistribution.ROUND_ROBIN);
// when
task.run();
// then
verify(singlePassProcessor).applyFiltered(same(store), any(ProgressListener.class));
}
use of org.neo4j.kernel.impl.store.NodeStore in project neo4j by neo4j.
the class NodeIdReuseStressIT method highestNodeId.
private static long highestNodeId(GraphDatabaseService db) {
DependencyResolver resolver = dependencyResolver(db);
NeoStores neoStores = resolver.resolveDependency(RecordStorageEngine.class).testAccessNeoStores();
NodeStore nodeStore = neoStores.getNodeStore();
return nodeStore.getHighestPossibleIdInUse();
}
use of org.neo4j.kernel.impl.store.NodeStore in project neo4j by neo4j.
the class NodeRecordCheckTest method shouldReportOutOfOrderLabels.
@Test
public void shouldReportOutOfOrderLabels() throws Exception {
// given
final NodeRecord node = inUse(new NodeRecord(42, false, NONE, NONE));
// We need to do this override so we can put the labels unsorted, since InlineNodeLabels always sorts on insert
new InlineNodeLabels(node) {
@Override
public Collection<DynamicRecord> put(long[] labelIds, NodeStore nodeStore, DynamicRecordAllocator allocator) {
return putSorted(node, labelIds, nodeStore, allocator);
}
}.put(new long[] { 3, 1, 2 }, null, null);
LabelTokenRecord label1 = inUse(new LabelTokenRecord(1));
LabelTokenRecord label2 = inUse(new LabelTokenRecord(2));
LabelTokenRecord label3 = inUse(new LabelTokenRecord(3));
add(label1);
add(label2);
add(label3);
add(node);
// when
ConsistencyReport.NodeConsistencyReport report = check(node);
// then
verify(report).labelsOutOfOrder(3, 1);
}
use of org.neo4j.kernel.impl.store.NodeStore in project neo4j by neo4j.
the class MockedNeoStores method basicMockedNeoStores.
@SuppressWarnings({ "unchecked", "rawtypes" })
public static NeoStores basicMockedNeoStores() {
NeoStores neoStores = mock(NeoStores.class);
// Cursor, absolutely mocked and cannot be used at all as it is
RecordCursor cursor = mockedRecordCursor();
// NodeStore - DynamicLabelStore
NodeStore nodeStore = mock(NodeStore.class);
when(nodeStore.newRecordCursor(any())).thenReturn(cursor);
when(neoStores.getNodeStore()).thenReturn(nodeStore);
// NodeStore - DynamicLabelStore
DynamicArrayStore dynamicLabelStore = mock(DynamicArrayStore.class);
when(dynamicLabelStore.newRecordCursor(any())).thenReturn(cursor);
when(nodeStore.getDynamicLabelStore()).thenReturn(dynamicLabelStore);
// RelationshipStore
RelationshipStore relationshipStore = mock(RelationshipStore.class);
when(relationshipStore.newRecordCursor(any())).thenReturn(cursor);
when(neoStores.getRelationshipStore()).thenReturn(relationshipStore);
// RelationshipGroupStore
RelationshipGroupStore relationshipGroupStore = mock(RelationshipGroupStore.class);
when(relationshipGroupStore.newRecordCursor(any())).thenReturn(cursor);
when(neoStores.getRelationshipGroupStore()).thenReturn(relationshipGroupStore);
// PropertyStore
PropertyStore propertyStore = mock(PropertyStore.class);
when(propertyStore.newRecordCursor(any())).thenReturn(cursor);
when(neoStores.getPropertyStore()).thenReturn(propertyStore);
// PropertyStore -- DynamicStringStore
DynamicStringStore propertyStringStore = mock(DynamicStringStore.class);
when(propertyStringStore.newRecordCursor(any())).thenReturn(cursor);
when(propertyStore.getStringStore()).thenReturn(propertyStringStore);
// PropertyStore -- DynamicArrayStore
DynamicArrayStore propertyArrayStore = mock(DynamicArrayStore.class);
when(propertyArrayStore.newRecordCursor(any())).thenReturn(cursor);
when(propertyStore.getArrayStore()).thenReturn(propertyArrayStore);
return neoStores;
}
use of org.neo4j.kernel.impl.store.NodeStore in project neo4j by neo4j.
the class StoreMigrator method rebuildCountsFromScratch.
private void rebuildCountsFromScratch(File storeDir, long lastTxId, PageCache pageCache) {
final File storeFileBase = new File(storeDir, MetaDataStore.DEFAULT_NAME + StoreFactory.COUNTS_STORE);
StoreFactory storeFactory = new StoreFactory(storeDir, pageCache, fileSystem, NullLogProvider.getInstance());
try (NeoStores neoStores = storeFactory.openAllNeoStores()) {
NodeStore nodeStore = neoStores.getNodeStore();
RelationshipStore relationshipStore = neoStores.getRelationshipStore();
try (Lifespan life = new Lifespan()) {
int highLabelId = (int) neoStores.getLabelTokenStore().getHighId();
int highRelationshipTypeId = (int) neoStores.getRelationshipTypeTokenStore().getHighId();
CountsComputer initializer = new CountsComputer(lastTxId, nodeStore, relationshipStore, highLabelId, highRelationshipTypeId);
life.add(new CountsTracker(logService.getInternalLogProvider(), fileSystem, pageCache, config, storeFileBase).setInitializer(initializer));
}
}
}
Aggregations