private void placeMetaDataStoreLast( List<StoreFileMetadata> files ) { int index = 0; for ( StoreFileMetadata file : files ) { if ( databaseLayout.metadataStore().equals( file.file() ) ) { break; } index++; } if ( index < files.size() - 1 ) { StoreFileMetadata metaDataStoreFile = files.remove( index ); files.add( metaDataStoreFile ); } }
private void addCountStoreFiles( List<StoreFileMetadata> files ) { Iterable<File> countStoreFiles = neoStores.getCounts().allFiles(); for ( File countStoreFile : countStoreFiles ) { StoreFileMetadata countStoreFileMetadata = new StoreFileMetadata( countStoreFile, RecordFormat.NO_RECORD_SIZE ); files.add( countStoreFileMetadata ); } }
@Override public boolean next() throws IOException { if ( !files.hasNext() ) { resource = null; return false; } StoreFileMetadata md = files.next(); resource = new StoreResource( md.file(), relativePath( storeDir, md.file() ), md.recordSize(), pageCache, fs ); return true; }
private void verifyLogFilesWithCustomPathListing( String path ) throws IOException { GraphDatabaseAPI graphDatabase = (GraphDatabaseAPI) new TestGraphDatabaseFactory() .newEmbeddedDatabaseBuilder( testDirectory.databaseDir( "customDb" ) ) .setConfig( GraphDatabaseSettings.logical_logs_location, path ) .newGraphDatabase(); NeoStoreDataSource dataSource = graphDatabase.getDependencyResolver().resolveDependency( NeoStoreDataSource.class ); LogFiles logFiles = graphDatabase.getDependencyResolver().resolveDependency( LogFiles.class ); assertTrue( dataSource.listStoreFiles( true ).stream() .anyMatch( metadata -> metadata.isLogFile() && logFiles.isLogFile( metadata.file() ) ) ); assertEquals( Paths.get( path ).getFileName().toString(), logFiles.logFilesDirectory().getName() ); graphDatabase.shutdown(); }
File file = meta.file(); boolean isLogFile = meta.isLogFile(); int recordSize = meta.recordSize();
private StoreResource toStoreResource( StoreFileMetadata storeFileMetadata ) throws IOException { File storeDir = neoStoreDataSource.getStoreDir(); File file = storeFileMetadata.file(); String relativePath = relativePath( storeDir, file ); return new StoreResource( file, relativePath, storeFileMetadata.recordSize(), pageCache, fileSystemAbstraction ); }
@Test public void shouldListTxLogFiles() throws Exception { assertTrue( neoStoreDataSource.listStoreFiles( true ).stream() .map( metaData -> metaData.file().getName() ) .anyMatch( fileName -> TransactionLogFiles.DEFAULT_FILENAME_FILTER.accept( null, fileName ) ) ); }
new StoreResource( storeFileMetadata.file(), relativePath( storeDir, storeFileMetadata.file() ), storeFileMetadata.recordSize(), pageCache, fs ) );
@Override public Resource addFilesTo( Collection<StoreFileMetadata> fileMetadataCollection ) { fileMetadataCollection.add( new StoreFileMetadata( new File( "marker" ), 0 ) ); return Resource.EMPTY; } }
@Test public void shouldNotListTxLogFiles() throws Exception { assertTrue( neoStoreDataSource.listStoreFiles( false ).stream() .map( metaData -> metaData.file().getName() ) .noneMatch( fileName -> TransactionLogFiles.DEFAULT_FILENAME_FILTER.accept( null, fileName ) ) ); }
private static Set<StoreFileMetadata> toMeta( File... files ) { return Arrays.stream( files ) .map( file -> new StoreFileMetadata( file, RecordFormat.NO_RECORD_SIZE ) ) .collect( Collectors.toCollection( HashSet::new ) ); }
@Test public void doNotListFilesFromAdditionalProviderThatRegisterTwice() throws IOException { NeoStoreFileListing neoStoreFileListing = neoStoreDataSource.getNeoStoreFileListing(); MarkerFileProvider provider = new MarkerFileProvider(); neoStoreFileListing.registerStoreFileProvider( provider ); neoStoreFileListing.registerStoreFileProvider( provider ); ResourceIterator<StoreFileMetadata> metadataResourceIterator = neoStoreFileListing.builder().build(); assertEquals( 1, metadataResourceIterator.stream().filter( metadata -> "marker".equals( metadata.file().getName() ) ).count() ); }
@Override public Collection<StoreFileMetadata> listStorageFiles() { List<StoreFileMetadata> files = new ArrayList<>(); for ( StoreType type : StoreType.values() ) { if ( type.equals( StoreType.COUNTS ) ) { addCountStoreFiles( files ); } else { final RecordStore<AbstractBaseRecord> recordStore = neoStores.getRecordStore( type ); StoreFileMetadata metadata = new StoreFileMetadata( recordStore.getStorageFile(), recordStore.getRecordSize() ); files.add( metadata ); } } return files; }
@Test public void shouldListMetaDataStoreLastWithTxLogs() throws Exception { StoreFileMetadata fileMetadata = Iterators.last( neoStoreDataSource.listStoreFiles( true ) ); assertEquals( fileMetadata.file(), neoStoreDataSource.getDatabaseLayout().metadataStore() ); }
private void addCountStoreFiles( List<StoreFileMetadata> files ) { Iterable<File> countStoreFiles = neoStores.getCounts().allFiles(); for ( File countStoreFile : countStoreFiles ) { StoreFileMetadata countStoreFileMetadata = new StoreFileMetadata( countStoreFile, RecordFormat.NO_RECORD_SIZE ); files.add( countStoreFileMetadata ); } }
@Test public void shouldListMetaDataStoreLast() throws Exception { StoreFileMetadata fileMetadata = Iterators.last( neoStoreDataSource.listStoreFiles( false ) ); assertEquals( fileMetadata.file(), neoStoreDataSource.getDatabaseLayout().metadataStore() ); }
@Override public synchronized Resource addFilesTo( Collection<StoreFileMetadata> coll ) throws IOException { if ( stopped ) { return Resource.EMPTY; } List<PagedFile> files = pageCache.listExistingMappings(); Profile[] existingProfiles = findExistingProfiles( files ); for ( Profile profile : existingProfiles ) { coll.add( new StoreFileMetadata( profile.file(), 1, false ) ); } refCounts.incrementRefCounts( existingProfiles ); return () -> refCounts.decrementRefCounts( existingProfiles ); }
private static Predicate<StoreFileMetadata> matchesRequested( String fileName ) { return f -> f.file().getName().equals( fileName ); }
@Override public Collection<StoreFileMetadata> listStorageFiles() { List<StoreFileMetadata> files = new ArrayList<>(); for ( StoreType type : StoreType.values() ) { if ( type.equals( StoreType.COUNTS ) ) { addCountStoreFiles( files ); } else { final RecordStore<AbstractBaseRecord> recordStore = neoStores.getRecordStore( type ); StoreFileMetadata metadata = new StoreFileMetadata( recordStore.getStorageFile(), recordStore.getRecordSize() ); files.add( metadata ); } } return files; }
private static Predicate<StoreFileMetadata> isCountFile() { return storeFileMetadata -> StoreType.typeOf( storeFileMetadata.file().getName() ).filter( f -> f == StoreType.COUNTS ).isPresent(); }