private void deleteStoreFiles( DatabaseLayout databaseLayout, Predicate<StoreType> storesToKeep ) { for ( StoreType type : StoreType.values() ) { if ( type.isRecordStore() && !storesToKeep.test( type ) ) { DatabaseFile databaseFile = type.getDatabaseFile(); databaseLayout.file( databaseFile ).forEach( fileSystem::deleteFile ); databaseLayout.idFile( databaseFile ).ifPresent( fileSystem::deleteFile ); } } }
/** * Determine type of a store base on provided database file. * * @param databaseFile - database file to map * @return an {@link Optional} that wraps the matching store type of the specified file, * or {@link Optional#empty()} if the given file name does not match any store files. */ public static Optional<StoreType> typeOf( DatabaseFile databaseFile ) { Objects.requireNonNull( databaseFile ); StoreType[] values = StoreType.values(); for ( StoreType value : values ) { if ( value.getDatabaseFile().equals( databaseFile ) ) { return Optional.of( value ); } } return Optional.empty(); } }
private long sumStoreFiles( DatabaseLayout databaseLayout ) { long total = 0; for ( StoreType type : StoreType.values() ) { if ( type.isRecordStore() ) { FileSystemAbstraction fileSystem = outsideWorld.fileSystem(); total += databaseLayout.file( type.getDatabaseFile() ).filter( fileSystem::fileExists ).mapToLong( fileSystem::getFileSize ).sum(); } } return total; }
private void flushIdFiles( NeoStores neoStores, StoreType[] storeTypes ) { for ( StoreType type : storeTypes ) { if ( type.isRecordStore() ) { RecordStore<AbstractBaseRecord> recordStore = neoStores.getRecordStore( type ); Optional<File> idFile = databaseLayout.idFile( type.getDatabaseFile() ); idFile.ifPresent( f -> idGeneratorFactory.create( f, recordStore.getHighId(), false ) ); } } } }
private void manuallyCountTotalMappedFileSize( File dir, MutableLong result, NativeIndexFileFilter nativeIndexFilter ) { Set<String> storeFiles = Stream.of( StoreType.values() ).filter( StoreType::isRecordStore ).map( type -> type.getDatabaseFile().getName() ).collect( Collectors.toSet() ); for ( File file : dir.listFiles() ) { if ( file.isDirectory() ) { manuallyCountTotalMappedFileSize( file, result, nativeIndexFilter ); } else if ( storeFiles.contains( file.getName() ) || file.getName().equals( DatabaseFile.LABEL_SCAN_STORE.getName() ) || nativeIndexFilter.accept( file ) ) { result.add( file.length() ); } } }
private static long[] calculatePageCacheFileSize( DatabaseLayout databaseLayout ) throws IOException { MutableLong pageCacheTotal = new MutableLong(); MutableLong luceneTotal = new MutableLong(); for ( StoreType storeType : StoreType.values() ) { if ( storeType.isRecordStore() ) { long length = databaseLayout.file( storeType.getDatabaseFile() ).mapToLong( File::length ).sum(); pageCacheTotal.add( length ); } } Files.walkFileTree( IndexDirectoryStructure.baseSchemaIndexFolder( databaseLayout.databaseDirectory() ).toPath(), new SimpleFileVisitor<Path>() { @Override public FileVisitResult visitFile( Path path, BasicFileAttributes attrs ) { File file = path.toFile(); Path name = path.getName( path.getNameCount() - 3 ); boolean isLuceneFile = (path.getNameCount() >= 3 && name.toString().startsWith( "lucene-" )) || (path.getNameCount() >= 4 && path.getName( path.getNameCount() - 4 ).toString().equals( "lucene" )); if ( !FailureStorage.DEFAULT_FAILURE_FILE_NAME.equals( file.getName() ) ) { (isLuceneFile ? luceneTotal : pageCacheTotal).add( file.length() ); } return FileVisitResult.CONTINUE; } } ); return new long[]{pageCacheTotal.longValue(), luceneTotal.longValue()}; }
dbRule.databaseLayout().file( storeType.getDatabaseFile() ).forEach( f -> assertTrue( f.exists() ) );
private void shouldPrintReferenceLinkAsPartOfErrorMessage( List<String> nodeIds, Iterator<RelationshipDataLine> relationshipDataLines, String message ) { Configuration config = Configuration.COMMAS; try { // WHEN importTool( "--into", dbRule.getDatabaseDirAbsolutePath(), "--nodes", nodeData( true, config, nodeIds, TRUE ).getAbsolutePath(), "--skip-bad-relationships", "false", "--relationships", relationshipData( true, config, relationshipDataLines, TRUE, true ).getAbsolutePath() ); fail( " Should fail during import." ); } catch ( Exception e ) { // EXPECT assertTrue( suppressOutput.getErrorVoice().containsMessage( message ) ); } for ( StoreType storeType : StoreType.values() ) { if ( storeType.isRecordStore() ) { dbRule.databaseLayout().file( storeType.getDatabaseFile() ).forEach( File::delete ); } } }
private void deleteStoreFiles( DatabaseLayout databaseLayout, Predicate<StoreType> storesToKeep ) { for ( StoreType type : StoreType.values() ) { if ( type.isRecordStore() && !storesToKeep.test( type ) ) { DatabaseFile databaseFile = type.getDatabaseFile(); databaseLayout.file( databaseFile ).forEach( fileSystem::deleteFile ); databaseLayout.idFile( databaseFile ).ifPresent( fileSystem::deleteFile ); } } }
/** * Determine type of a store base on provided database file. * * @param databaseFile - database file to map * @return an {@link Optional} that wraps the matching store type of the specified file, * or {@link Optional#empty()} if the given file name does not match any store files. */ public static Optional<StoreType> typeOf( DatabaseFile databaseFile ) { Objects.requireNonNull( databaseFile ); StoreType[] values = StoreType.values(); for ( StoreType value : values ) { if ( value.getDatabaseFile().equals( databaseFile ) ) { return Optional.of( value ); } } return Optional.empty(); } }
private long sumStoreFiles( DatabaseLayout databaseLayout ) { long total = 0; for ( StoreType type : StoreType.values() ) { if ( type.isRecordStore() ) { FileSystemAbstraction fileSystem = outsideWorld.fileSystem(); total += databaseLayout.file( type.getDatabaseFile() ).filter( fileSystem::fileExists ).mapToLong( fileSystem::getFileSize ).sum(); } } return total; }
private void flushIdFiles( NeoStores neoStores, StoreType[] storeTypes ) { for ( StoreType type : storeTypes ) { if ( type.isRecordStore() ) { RecordStore<AbstractBaseRecord> recordStore = neoStores.getRecordStore( type ); Optional<File> idFile = databaseLayout.idFile( type.getDatabaseFile() ); idFile.ifPresent( f -> idGeneratorFactory.create( f, recordStore.getHighId(), false ) ); } } } }