@Before public void before() { FileSystemAbstraction fs = fileSystemRule.get(); DefaultIdGeneratorFactory idGeneratorFactory = new DefaultIdGeneratorFactory( fs ); PageCache pageCache = pageCacheRule.getPageCache( fs ); StoreFactory factory = new StoreFactory( testDirectory.databaseLayout(), Config.defaults(), idGeneratorFactory, pageCache, fs, NullLogProvider.getInstance(), EmptyVersionContextSupplier.EMPTY ); neoStores = factory.openAllNeoStores( true ); arrayStore = neoStores.getPropertyStore().getArrayStore(); }
@Before public void setupPagedFile() throws IOException { PageCache pageCache = pageCacheRule .getPageCache( fileSystemRule.get(), config().withPageSize( PAGE_SIZE ).withAccessChecks( true ) ); pagedFile = pageCache .map( testDirectory.file( FILE_NAME ), PAGE_SIZE, CREATE, DELETE_ON_CLOSE ); }
public PageCache getPageCache( FileSystemAbstraction fs ) { return getPageCache( fs, config() ); }
private PageCache createPageCache( int pageSize ) { return pageCacheRule.getPageCache( fs.get(), config().withPageSize( pageSize ) ); }
@Before public void setupPageCache() { pageCache = pageCacheRule.getPageCache( fsRule.get() ); }
@Test public void flushOfThePageCacheOnShutdownDoesNotHappenIfTheDbIsUnhealthy() throws Throwable { DatabaseHealth health = mock( DatabaseHealth.class ); when( health.isHealthy() ).thenReturn( false ); PageCache pageCache = spy( pageCacheRule.getPageCache( fs.get() ) ); Dependencies dependencies = new Dependencies(); dependencies.satisfyDependency( health ); NeoStoreDataSource ds = dsRule.getDataSource( dir.databaseLayout(), fs.get(), pageCache, dependencies ); ds.start(); verify( pageCache, never() ).flushAndForce(); ds.stop(); ds.shutdown(); verify( pageCache, never() ).flushAndForce( IOLimiter.UNLIMITED ); }
@Before public void setUp() throws Exception { databaseLayout = testDirectory.databaseLayout(); storeDir = databaseLayout.databaseDirectory(); nativeLabelIndex = databaseLayout.labelScanStore(); migrationLayout = testDirectory.databaseLayout( "migrationDir" ); luceneLabelScanStore = testDirectory.databaseDir().toPath().resolve( Paths.get( "schema", "label", "lucene" ) ).toFile(); fileSystem = fileSystemRule.get(); pageCache = pageCacheRule.getPageCache( fileSystemRule ); indexMigrator = new NativeLabelScanStoreMigrator( fileSystem, pageCache, Config.defaults() ); fileSystem.mkdirs( luceneLabelScanStore ); }
@Before public void setup() { fs = fsRule.get(); dbBuilder = new TestGraphDatabaseFactory().setFileSystem( new UncloseableDelegatingFileSystemAbstraction( fs ) ) .newImpermanentDatabaseBuilder( testDir.databaseDir() ); pageCache = pcRule.getPageCache( fs ); }
@Before public void setUp() throws IOException { logVersionRepository = new SimpleLogVersionRepository(); logFiles = LogFilesBuilder .activeFilesBuilder( testDirectory.databaseLayout(), fsRule, pageCacheRule.getPageCache( fsRule ) ) .withLogVersionRepository( logVersionRepository ) .build(); tailScanner = new LogTailScanner( logFiles, reader, monitors ); }
@Before public void setup() throws IOException { fileSystem = fileSystemRule.get(); PageCache pageCache = pageCacheRule.getPageCache( fileSystem ); workingStoreDir = testDir.storeDir( "working_" + version ); workingDatabaseLayout = testDir.databaseLayout( workingStoreDir ); check = new StoreVersionCheck( pageCache ); File prepareDirectory = testDir.directory( "prepare_" + version ); prepareSampleLegacyDatabase( version, fileSystem, workingDatabaseLayout.databaseDirectory(), prepareDirectory ); }
@Before public void setup() throws IOException { valueCreatorUtil = createValueCreatorUtil(); indexDescriptor = valueCreatorUtil.indexDescriptor(); layout = createLayout(); indexDirectoryStructure = directoriesByProvider( directory.directory( "root" ) ).forProvider( indexDescriptor.providerDescriptor() ); indexFile = indexDirectoryStructure.directoryForIndex( indexDescriptor.getId() ); fs.mkdirs( indexFile.getParentFile() ); pageCache = pageCacheRule.getPageCache( fs ); }
@Before public void setup() { DefaultFileSystemAbstraction fs = this.fs.get(); PageCache pc = pageCacheRule.getPageCache( fs ); File file = directory.file( "index" ); GenericLayout layout = new GenericLayout( 1, indexSettings ); RecoveryCleanupWorkCollector collector = RecoveryCleanupWorkCollector.ignore(); descriptor = TestIndexDescriptorFactory.forLabel( 1, 1 ).withId( 1 ); IndexDirectoryStructure.Factory factory = IndexDirectoryStructure.directoriesByProvider( directory.storeDir() ); IndexDirectoryStructure structure = factory.forProvider( GenericNativeIndexProvider.DESCRIPTOR ); accessor = new GenericNativeIndexAccessor( pc, fs, file, layout, collector, EMPTY, descriptor, indexSettings, structure, new StandardConfiguration() ); }
@Test public void shouldAlwaysShutdownLifeEvenWhenCheckPointingFails() throws Exception { // Given FileSystemAbstraction fs = this.fs.get(); PageCache pageCache = pageCacheRule.getPageCache( fs ); DatabaseHealth databaseHealth = mock( DatabaseHealth.class ); when( databaseHealth.isHealthy() ).thenReturn( true ); IOException ex = new IOException( "boom!" ); doThrow( ex ).when( databaseHealth ) .assertHealthy( IOException.class ); // <- this is a trick to simulate a failure during checkpointing Dependencies dependencies = new Dependencies(); dependencies.satisfyDependencies( databaseHealth ); NeoStoreDataSource dataSource = dsRule.getDataSource( dir.databaseLayout(), fs, pageCache, dependencies ); dataSource.start(); try { // When dataSource.stop(); fail( "it should have thrown" ); } catch ( LifecycleException e ) { // Then assertEquals( ex, e.getCause() ); } }
PageCache pageCache = pageCacheRule.getPageCache( fileSystemAbstraction ); Config config = Config.defaults( GraphDatabaseSettings.rebuild_idgenerators_fast, "true" ); DynamicStringStore stringPropertyStore = mock( DynamicStringStore.class ); NullLogProvider.getInstance(), stringPropertyStore, mock( PropertyKeyTokenStore.class ), mock( DynamicArrayStore.class ), RecordFormatSelector.defaultFormat() ); store.initialise( true );
@Test public void flushOfThePageCacheHappensOnlyOnceDuringShutdown() throws Throwable { PageCache pageCache = spy( pageCacheRule.getPageCache( fs.get() ) ); NeoStoreDataSource ds = dsRule.getDataSource( dir.databaseLayout(), fs.get(), pageCache ); ds.start(); verify( pageCache, never() ).flushAndForce(); verify( pageCache, never() ).flushAndForce( any( IOLimiter.class ) ); ds.stop(); ds.shutdown(); verify( pageCache ).flushAndForce( IOLimiter.UNLIMITED ); }
@Test public void panicOnExceptionDuringCommandsApply() { IllegalStateException failure = new IllegalStateException( "Too many open files" ); RecordStorageEngine engine = storageEngineRule.getWith( fsRule.get(), pageCacheRule.getPageCache( fsRule.get() ), testDirectory.databaseLayout() ) .databaseHealth( databaseHealth ) .transactionApplierTransformer( facade -> transactionApplierFacadeTransformer( facade, failure ) ) .build(); CommandsToApply commandsToApply = mock( CommandsToApply.class ); try { engine.apply( commandsToApply, TransactionApplicationMode.INTERNAL ); fail( "Exception expected" ); } catch ( Exception exception ) { assertSame( failure, Exceptions.rootCause( exception ) ); } verify( databaseHealth ).panic( any( Throwable.class ) ); }
Config config = Config.defaults( GraphDatabaseSettings.rebuild_idgenerators_fast, "false" ); File storeFile = testDirectory.file( "nodes" ); File idFile = testDirectory.file( "idNodes" ); DynamicArrayStore labelStore = mock( DynamicArrayStore.class ); NodeStore store = new NodeStore( storeFile, idFile, config, new DefaultIdGeneratorFactory( fs ), pageCacheRule.getPageCache( fs ), NullLogProvider.getInstance(), labelStore, RecordFormatSelector.defaultFormat() ); store.initialise( true );
@Test public void logModuleSetUpError() { Config config = Config.defaults(); IdGeneratorFactory idGeneratorFactory = mock( IdGeneratorFactory.class ); Throwable openStoresError = new RuntimeException( "Can't set up modules" ); doThrow( openStoresError ).when( idGeneratorFactory ).create( any( File.class ), anyLong(), anyBoolean() ); CommunityIdTypeConfigurationProvider idTypeConfigurationProvider = new CommunityIdTypeConfigurationProvider(); AssertableLogProvider logProvider = new AssertableLogProvider(); SimpleLogService logService = new SimpleLogService( logProvider, logProvider ); PageCache pageCache = pageCacheRule.getPageCache( fs.get() ); Dependencies dependencies = new Dependencies(); dependencies.satisfyDependencies( idGeneratorFactory, idTypeConfigurationProvider, config, logService ); NeoStoreDataSource dataSource = dsRule.getDataSource( dir.databaseLayout(), fs.get(), pageCache, dependencies ); try { dataSource.start(); fail( "Exception expected" ); } catch ( Exception e ) { assertEquals( openStoresError, e ); } logProvider.assertAtLeastOnce( inLog( NeoStoreDataSource.class ).warn( equalTo( "Exception occurred while setting up store modules. Attempting to close things down." ), equalTo( openStoresError ) ) ); }
Kernel( String desiredId ) { super( fileSystemRule.get(), pageCacheRule.getPageCache( fileSystemRule.get() ), new File( GraphDatabaseSettings.DEFAULT_DATABASE_NAME ), Config.defaults( forced_kernel_id, desiredId), mock( DataSourceManager.class ) ); kernels.add( this ); }