Skip to content

Commit

Permalink
Move progression to storageengine/api package
Browse files Browse the repository at this point in the history
  • Loading branch information
davidegrohmann committed May 8, 2017
1 parent 4360684 commit dc7454c
Show file tree
Hide file tree
Showing 25 changed files with 54 additions and 48 deletions.
Expand Up @@ -158,7 +158,7 @@
import org.neo4j.logging.Log;
import org.neo4j.logging.LogProvider;
import org.neo4j.logging.Logger;
import org.neo4j.storageengine.api.ProgressionFactory;
import org.neo4j.storageengine.api.BatchingProgressionFactory;
import org.neo4j.storageengine.api.StorageEngine;
import org.neo4j.storageengine.api.StoreFileMetadata;
import org.neo4j.storageengine.api.StoreReadLayer;
Expand Down Expand Up @@ -270,7 +270,7 @@ boolean applicable( DiagnosticsPhase phase )
private final AvailabilityGuard availabilityGuard;
private final SystemNanoClock clock;
private final StoreCopyCheckPointMutex storeCopyCheckPointMutex;
private final ProgressionFactory progressionFactory;
private final BatchingProgressionFactory progressionFactory;

private Dependencies dependencies;
private LifeSupport life;
Expand Down Expand Up @@ -327,7 +327,7 @@ public NeoStoreDataSource(
SystemNanoClock clock,
AccessCapability accessCapability,
StoreCopyCheckPointMutex storeCopyCheckPointMutex,
ProgressionFactory progressionFactory )
BatchingProgressionFactory progressionFactory )
{
this.storeDir = storeDir;
this.config = config;
Expand Down Expand Up @@ -573,7 +573,7 @@ private StorageEngine buildStorageEngine( PropertyKeyTokenHolder propertyKeyToke
LabelTokenHolder labelTokens, RelationshipTypeTokenHolder relationshipTypeTokens,
LegacyIndexProviderLookup legacyIndexProviderLookup, IndexConfigStore indexConfigStore,
Runnable schemaStateChangeCallback, SynchronizedArrayIdOrderingQueue legacyIndexTransactionOrdering,
ProgressionFactory progressionFactory )
BatchingProgressionFactory progressionFactory )
{
// TODO we should break this dependency on the kernelModule (which has not yet been created at this point in
// TODO the code) and instead let information about generations of transactions flow through the StorageEngine
Expand Down
Expand Up @@ -92,7 +92,6 @@
import org.neo4j.storageengine.api.Direction;
import org.neo4j.storageengine.api.EntityType;
import org.neo4j.storageengine.api.NodeItem;
import org.neo4j.storageengine.api.ProgressionFactory;
import org.neo4j.storageengine.api.PropertyItem;
import org.neo4j.storageengine.api.RelationshipItem;
import org.neo4j.storageengine.api.StorageProperty;
Expand Down
Expand Up @@ -20,6 +20,7 @@
package org.neo4j.kernel.impl.api.store;

import org.neo4j.kernel.impl.store.NodeStore;
import org.neo4j.storageengine.api.BatchingLongProgression;

public class AllNodeScan implements BatchingLongProgression
{
Expand Down
Expand Up @@ -20,9 +20,10 @@
package org.neo4j.kernel.impl.api.store;

import org.neo4j.kernel.impl.store.NodeStore;
import org.neo4j.storageengine.api.ProgressionFactory;
import org.neo4j.storageengine.api.BatchingLongProgression;
import org.neo4j.storageengine.api.BatchingProgressionFactory;

public class CommunityProgressionFactory implements ProgressionFactory
public class CommunityBatchingProgressionFactory implements BatchingProgressionFactory
{
@Override
public BatchingLongProgression singleNodeFetch( long nodeId )
Expand Down
Expand Up @@ -33,6 +33,7 @@
import org.neo4j.kernel.impl.store.record.NodeRecord;
import org.neo4j.kernel.impl.store.record.Record;
import org.neo4j.kernel.impl.util.IoPrimitiveUtils;
import org.neo4j.storageengine.api.BatchingLongProgression;
import org.neo4j.storageengine.api.NodeItem;
import org.neo4j.storageengine.api.txstate.NodeState;
import org.neo4j.storageengine.api.txstate.NodeTransactionStateView;
Expand Down
Expand Up @@ -19,6 +19,8 @@
*/
package org.neo4j.kernel.impl.api.store;

import org.neo4j.storageengine.api.BatchingLongProgression;

import static org.neo4j.kernel.api.StatementConstants.NO_SUCH_NODE;

public class SingleNodeFetch implements BatchingLongProgression
Expand Down
Expand Up @@ -63,7 +63,7 @@
import org.neo4j.register.Register.DoubleLongRegister;
import org.neo4j.storageengine.api.Direction;
import org.neo4j.storageengine.api.NodeItem;
import org.neo4j.storageengine.api.ProgressionFactory;
import org.neo4j.storageengine.api.BatchingProgressionFactory;
import org.neo4j.storageengine.api.PropertyItem;
import org.neo4j.storageengine.api.RelationshipItem;
import org.neo4j.storageengine.api.StorageProperty;
Expand Down Expand Up @@ -102,12 +102,12 @@ public class StorageLayer implements StoreReadLayer
private final PropertyLoader propertyLoader;
private final Supplier<StorageStatement> statementProvider;
private final SchemaCache schemaCache;
private final ProgressionFactory progressionFactory;
private final BatchingProgressionFactory progressionFactory;

public StorageLayer( PropertyKeyTokenHolder propertyKeyTokenHolder, LabelTokenHolder labelTokenHolder,
RelationshipTypeTokenHolder relationshipTokenHolder, SchemaStorage schemaStorage, NeoStores neoStores,
IndexingService indexService, Supplier<StorageStatement> storeStatementSupplier, SchemaCache schemaCache,
ProgressionFactory progressionFactory )
BatchingProgressionFactory progressionFactory )
{
this.relationshipTokenHolder = relationshipTokenHolder;
this.schemaStorage = schemaStorage;
Expand Down
Expand Up @@ -29,6 +29,7 @@
import org.neo4j.kernel.impl.locking.LockService;
import org.neo4j.kernel.impl.store.NeoStores;
import org.neo4j.kernel.impl.util.InstanceCache;
import org.neo4j.storageengine.api.BatchingLongProgression;
import org.neo4j.storageengine.api.Direction;
import org.neo4j.storageengine.api.NodeItem;
import org.neo4j.storageengine.api.PropertyItem;
Expand Down
Expand Up @@ -38,7 +38,7 @@
import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.impl.api.SchemaWriteGuard;
import org.neo4j.kernel.impl.api.index.RemoveOrphanConstraintIndexesOnStartup;
import org.neo4j.kernel.impl.api.store.CommunityProgressionFactory;
import org.neo4j.kernel.impl.api.store.CommunityBatchingProgressionFactory;
import org.neo4j.kernel.impl.api.store.StoreStatement;
import org.neo4j.kernel.impl.constraints.ConstraintSemantics;
import org.neo4j.kernel.impl.constraints.StandardConstraintSemantics;
Expand Down Expand Up @@ -72,7 +72,7 @@
import org.neo4j.kernel.internal.KernelData;
import org.neo4j.kernel.lifecycle.LifeSupport;
import org.neo4j.kernel.lifecycle.LifecycleStatus;
import org.neo4j.storageengine.api.ProgressionFactory;
import org.neo4j.storageengine.api.BatchingProgressionFactory;
import org.neo4j.udc.UsageData;

/**
Expand Down Expand Up @@ -147,9 +147,9 @@ public CommunityEditionModule( PlatformModule platformModule )
dependencies.satisfyDependency( createSessionTracker() );
}

protected ProgressionFactory createProgressionFactory()
protected BatchingProgressionFactory createProgressionFactory()
{
return new CommunityProgressionFactory();
return new CommunityBatchingProgressionFactory();
}

static Predicate<String> fileWatcherFileNameFilter()
Expand Down
Expand Up @@ -58,7 +58,7 @@
import org.neo4j.kernel.internal.KernelDiagnostics;
import org.neo4j.kernel.lifecycle.LifeSupport;
import org.neo4j.logging.Log;
import org.neo4j.storageengine.api.ProgressionFactory;
import org.neo4j.storageengine.api.BatchingProgressionFactory;
import org.neo4j.udc.UsageData;
import org.neo4j.udc.UsageDataKeys;

Expand Down Expand Up @@ -106,7 +106,7 @@ public abstract class EditionModule

public FileSystemWatcherService watcherService;

public ProgressionFactory progressionFactory;
public BatchingProgressionFactory progressionFactory;

protected FileSystemWatcherService createFileSystemWatcherService( FileSystemAbstraction fileSystem, File storeDir,
LogService logging, JobScheduler jobScheduler, Predicate<String> fileNameFilter )
Expand Down
Expand Up @@ -111,7 +111,7 @@
import org.neo4j.logging.LogProvider;
import org.neo4j.storageengine.api.CommandReaderFactory;
import org.neo4j.storageengine.api.CommandsToApply;
import org.neo4j.storageengine.api.ProgressionFactory;
import org.neo4j.storageengine.api.BatchingProgressionFactory;
import org.neo4j.storageengine.api.StorageCommand;
import org.neo4j.storageengine.api.StorageEngine;
import org.neo4j.storageengine.api.StorageStatement;
Expand Down Expand Up @@ -196,7 +196,7 @@ public RecordStorageEngine(
IndexConfigStore indexConfigStore,
IdOrderingQueue legacyIndexTransactionOrdering,
Supplier<KernelTransactionsSnapshot> transactionsSnapshotSupplier,
ProgressionFactory progressionFactory )
BatchingProgressionFactory progressionFactory )
{
this.propertyKeyTokenHolder = propertyKeyTokenHolder;
this.relationshipTypeTokenHolder = relationshipTypeTokens;
Expand Down
Expand Up @@ -17,7 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.kernel.impl.api.store;
package org.neo4j.storageengine.api;

import org.neo4j.kernel.impl.api.store.Batch;

public interface BatchingLongProgression
{
Expand Down
Expand Up @@ -19,10 +19,9 @@
*/
package org.neo4j.storageengine.api;

import org.neo4j.kernel.impl.api.store.BatchingLongProgression;
import org.neo4j.kernel.impl.store.NodeStore;

public interface ProgressionFactory
public interface BatchingProgressionFactory
{
BatchingLongProgression singleNodeFetch( long nodeId );

Expand Down
Expand Up @@ -22,7 +22,6 @@
import org.neo4j.cursor.Cursor;
import org.neo4j.kernel.api.exceptions.index.IndexNotFoundKernelException;
import org.neo4j.kernel.api.schema.index.IndexDescriptor;
import org.neo4j.kernel.impl.api.store.BatchingLongProgression;
import org.neo4j.kernel.impl.api.store.NodeDegreeCounter;
import org.neo4j.kernel.impl.locking.Lock;
import org.neo4j.storageengine.api.schema.IndexReader;
Expand Down
Expand Up @@ -41,6 +41,7 @@
import org.neo4j.kernel.impl.store.NodeStore;
import org.neo4j.kernel.impl.store.record.NodeRecord;
import org.neo4j.kernel.impl.util.IoPrimitiveUtils;
import org.neo4j.storageengine.api.BatchingLongProgression;
import org.neo4j.storageengine.api.NodeItem;
import org.neo4j.storageengine.api.txstate.NodeTransactionStateView;
import org.neo4j.storageengine.api.txstate.ReadableTransactionState;
Expand Down
Expand Up @@ -40,11 +40,11 @@
import org.neo4j.kernel.api.txstate.TransactionState;
import org.neo4j.kernel.impl.api.KernelTransactionImplementation;
import org.neo4j.kernel.impl.api.state.TxState;
import org.neo4j.kernel.impl.api.store.BatchingLongProgression;
import org.neo4j.kernel.impl.api.store.StoreStatement;
import org.neo4j.kernel.impl.core.NodeProxy;
import org.neo4j.kernel.impl.core.RelationshipProxy;
import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge;
import org.neo4j.storageengine.api.BatchingLongProgression;
import org.neo4j.storageengine.api.NodeItem;
import org.neo4j.storageengine.api.RelationshipItem;
import org.neo4j.storageengine.api.StoreReadLayer;
Expand All @@ -58,7 +58,6 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.neo4j.helpers.collection.Iterables.single;
Expand Down
Expand Up @@ -37,7 +37,7 @@
import org.neo4j.kernel.impl.api.legacyindex.InternalAutoIndexing;
import org.neo4j.kernel.impl.api.scan.LabelScanStoreProvider;
import org.neo4j.kernel.impl.api.scan.NativeLabelScanStoreExtension;
import org.neo4j.kernel.impl.api.store.CommunityProgressionFactory;
import org.neo4j.kernel.impl.api.store.CommunityBatchingProgressionFactory;
import org.neo4j.kernel.impl.api.store.StoreStatement;
import org.neo4j.kernel.impl.constraints.StandardConstraintSemantics;
import org.neo4j.kernel.impl.core.DatabasePanicEventGenerator;
Expand Down Expand Up @@ -141,7 +141,7 @@ TransactionHeaderInformationFactory.DEFAULT, new StartupStatisticsProvider(), nu
new StandardConstraintSemantics(), StoreStatement::new, monitors,
new Tracers( "null", NullLog.getInstance(), monitors, jobScheduler ), mock( Procedures.class ),
IOLimiter.unlimited(), new AvailabilityGuard( clock, NullLog.getInstance() ), clock, new CanWrite(),
new StoreCopyCheckPointMutex(), new CommunityProgressionFactory() );
new StoreCopyCheckPointMutex(), new CommunityBatchingProgressionFactory() );

return dataSource;
}
Expand Down
Expand Up @@ -35,7 +35,7 @@
import org.neo4j.kernel.impl.api.LegacyIndexProviderLookup;
import org.neo4j.kernel.impl.api.index.IndexingService;
import org.neo4j.kernel.impl.api.scan.LabelScanStoreProvider;
import org.neo4j.kernel.impl.api.store.CommunityProgressionFactory;
import org.neo4j.kernel.impl.api.store.CommunityBatchingProgressionFactory;
import org.neo4j.kernel.impl.api.store.StoreStatement;
import org.neo4j.kernel.impl.constraints.ConstraintSemantics;
import org.neo4j.kernel.impl.constraints.StandardConstraintSemantics;
Expand Down Expand Up @@ -216,7 +216,7 @@ private class ExtendedRecordStorageEngine extends RecordStorageEngine
constraintSemantics, storageStatementFactory, scheduler, tokenNameLookup, lockService,
indexProvider, indexingServiceMonitor, databaseHealth, labelScanStoreProvider,
legacyIndexProviderLookup, indexConfigStore, legacyIndexTransactionOrdering,
transactionsSnapshotSupplier, new CommunityProgressionFactory() );
transactionsSnapshotSupplier, new CommunityBatchingProgressionFactory() );
this.transactionApplierTransformer = transactionApplierTransformer;
}

Expand Down
Expand Up @@ -73,7 +73,7 @@
import org.neo4j.kernel.impl.api.SchemaWriteGuard;
import org.neo4j.kernel.impl.api.TransactionHeaderInformation;
import org.neo4j.kernel.impl.api.index.RemoveOrphanConstraintIndexesOnStartup;
import org.neo4j.kernel.impl.api.store.EnterpriseProgressionFactory;
import org.neo4j.kernel.impl.api.store.EnterpriseBatchingProgressionFactory;
import org.neo4j.kernel.impl.api.store.StoreStatement;
import org.neo4j.kernel.impl.coreapi.CoreAPIAvailabilityGuard;
import org.neo4j.kernel.impl.enterprise.EnterpriseConstraintSemantics;
Expand Down Expand Up @@ -287,7 +287,7 @@ private void editionInvariants( PlatformModule platformModule, Dependencies depe

storageStatementFactory = StoreStatement::new;

progressionFactory = dependencies.satisfyDependency( new EnterpriseProgressionFactory() );
progressionFactory = dependencies.satisfyDependency( new EnterpriseBatchingProgressionFactory() );

coreAPIAvailabilityGuard =
new CoreAPIAvailabilityGuard( platformModule.availabilityGuard, transactionStartTimeout );
Expand Down
Expand Up @@ -63,7 +63,7 @@
import org.neo4j.kernel.impl.api.ReadOnlyTransactionCommitProcess;
import org.neo4j.kernel.impl.api.TransactionCommitProcess;
import org.neo4j.kernel.impl.api.TransactionRepresentationCommitProcess;
import org.neo4j.kernel.impl.api.store.EnterpriseProgressionFactory;
import org.neo4j.kernel.impl.api.store.EnterpriseBatchingProgressionFactory;
import org.neo4j.kernel.impl.api.store.StoreStatement;
import org.neo4j.kernel.impl.core.DelegatingLabelTokenHolder;
import org.neo4j.kernel.impl.core.DelegatingPropertyKeyTokenHolder;
Expand Down Expand Up @@ -168,7 +168,7 @@ public class EnterpriseReadReplicaEditionModule extends EditionModule

storageStatementFactory = StoreStatement::new;

progressionFactory = dependencies.satisfyDependency( new EnterpriseProgressionFactory() );
progressionFactory = dependencies.satisfyDependency( new EnterpriseBatchingProgressionFactory() );

coreAPIAvailabilityGuard =
new CoreAPIAvailabilityGuard( platformModule.availabilityGuard, transactionStartTimeout );
Expand Down
Expand Up @@ -129,7 +129,7 @@
import org.neo4j.kernel.impl.api.TransactionCommitProcess;
import org.neo4j.kernel.impl.api.TransactionHeaderInformation;
import org.neo4j.kernel.impl.api.index.RemoveOrphanConstraintIndexesOnStartup;
import org.neo4j.kernel.impl.api.store.EnterpriseProgressionFactory;
import org.neo4j.kernel.impl.api.store.EnterpriseBatchingProgressionFactory;
import org.neo4j.kernel.impl.api.store.StoreStatement;
import org.neo4j.kernel.impl.core.DelegatingLabelTokenHolder;
import org.neo4j.kernel.impl.core.DelegatingPropertyKeyTokenHolder;
Expand Down Expand Up @@ -528,7 +528,7 @@ public void elected( String role, InstanceId instanceId, URI electedMember )

storageStatementFactory = StoreStatement::new;

progressionFactory = dependencies.satisfyDependency( new EnterpriseProgressionFactory() );
progressionFactory = dependencies.satisfyDependency( new EnterpriseBatchingProgressionFactory() );

coreAPIAvailabilityGuard = new CoreAPIAvailabilityGuard( platformModule.availabilityGuard, transactionStartTimeout );

Expand Down
Expand Up @@ -20,8 +20,9 @@
package org.neo4j.kernel.impl.api.store;

import org.neo4j.kernel.impl.store.NodeStore;
import org.neo4j.storageengine.api.BatchingLongProgression;

public class EnterpriseProgressionFactory extends CommunityProgressionFactory
public class EnterpriseBatchingProgressionFactory extends CommunityBatchingProgressionFactory
{
@Override
public BatchingLongProgression parallelAllNodeScan( NodeStore nodeStore )
Expand Down
Expand Up @@ -23,6 +23,7 @@
import java.util.concurrent.atomic.AtomicLong;

import org.neo4j.kernel.impl.store.NodeStore;
import org.neo4j.storageengine.api.BatchingLongProgression;

class ParallelAllNodeScan implements BatchingLongProgression
{
Expand Down
Expand Up @@ -26,8 +26,7 @@
import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.enterprise.api.security.EnterpriseAuthManager;
import org.neo4j.kernel.enterprise.builtinprocs.EnterpriseBuiltInDbmsProcedures;
import org.neo4j.kernel.impl.api.store.CommunityProgressionFactory;
import org.neo4j.kernel.impl.api.store.EnterpriseProgressionFactory;
import org.neo4j.kernel.impl.api.store.EnterpriseBatchingProgressionFactory;
import org.neo4j.kernel.impl.constraints.ConstraintSemantics;
import org.neo4j.kernel.impl.enterprise.configuration.EnterpriseEditionSettings;
import org.neo4j.kernel.impl.enterprise.id.EnterpriseIdTypeConfigurationProvider;
Expand All @@ -40,10 +39,9 @@
import org.neo4j.kernel.impl.locking.StatementLocksFactory;
import org.neo4j.kernel.impl.logging.LogService;
import org.neo4j.kernel.impl.proc.Procedures;
import org.neo4j.kernel.impl.storageengine.impl.recordstorage.StorageStatementFactory;
import org.neo4j.kernel.impl.store.id.configuration.IdTypeConfigurationProvider;
import org.neo4j.kernel.impl.store.stats.IdBasedStoreEntityCounters;
import org.neo4j.storageengine.api.ProgressionFactory;
import org.neo4j.storageengine.api.BatchingProgressionFactory;

/**
* This implementation of {@link EditionModule} creates the implementations of services
Expand Down Expand Up @@ -78,9 +76,9 @@ protected ConstraintSemantics createSchemaRuleVerifier()
}

@Override
protected ProgressionFactory createProgressionFactory()
protected BatchingProgressionFactory createProgressionFactory()
{
return new EnterpriseProgressionFactory();
return new EnterpriseBatchingProgressionFactory();
}

@Override
Expand Down

0 comments on commit dc7454c

Please sign in to comment.