use of org.neo4j.io.fs.DefaultFileSystemAbstraction in project neo4j by neo4j.
the class BatchInserters method inserter.
public static BatchInserter inserter(DatabaseLayout databaseLayout, Config config, Iterable<ExtensionFactory<?>> extensions) throws IOException {
DefaultFileSystemAbstraction fileSystem = createFileSystem();
BatchInserterImpl inserter = new BatchInserterImpl(databaseLayout, fileSystem, config, extensions, EMPTY);
return new FileSystemClosingBatchInserter(inserter, fileSystem);
}
use of org.neo4j.io.fs.DefaultFileSystemAbstraction in project neo4j by neo4j.
the class BatchInserters method inserter.
public static BatchInserter inserter(DatabaseLayout databaseLayout, Config config) throws IOException {
DefaultFileSystemAbstraction fileSystem = createFileSystem();
BatchInserter inserter = inserter(databaseLayout, fileSystem, config, loadExtension());
return new FileSystemClosingBatchInserter(inserter, fileSystem);
}
use of org.neo4j.io.fs.DefaultFileSystemAbstraction in project neo4j by neo4j.
the class LoggingIndexedIdGeneratorMonitor method main.
/**
* Used for dumping contents of a log as text
*/
public static void main(String[] args) throws IOException {
Args arguments = Args.withFlags(ARG_TOFILE).parse(args);
if (arguments.orphans().isEmpty()) {
System.err.println("Please supply base name of log file");
return;
}
Path path = Path.of(arguments.orphans().get(0));
FileSystemAbstraction fs = new DefaultFileSystemAbstraction();
String filterArg = arguments.get(ARG_FILTER, null);
LongPredicate filter = filterArg != null ? parseFilter(filterArg) : NO_FILTER;
PrintStream out = System.out;
boolean redirectsToFile = arguments.getBoolean(ARG_TOFILE);
if (redirectsToFile) {
Path outFile = path.resolveSibling(path.getFileName() + ".txt");
System.out.println("Redirecting output to " + outFile);
out = new PrintStream(new BufferedOutputStream(Files.newOutputStream(outFile)));
}
dump(fs, path, new Printer(out, filter));
if (redirectsToFile) {
out.close();
}
}
use of org.neo4j.io.fs.DefaultFileSystemAbstraction in project neo4j by neo4j.
the class CsvInputEstimateCalculationIT method shouldCalculateCorrectEstimates.
@Test
void shouldCalculateCorrectEstimates() throws Exception {
// given a couple of input files of various layouts
Input input = generateData();
RecordFormats format = LATEST_RECORD_FORMATS;
Input.Estimates estimates = input.calculateEstimates(new PropertyValueRecordSizeCalculator(format.property().getRecordSize(NO_STORE_HEADER), GraphDatabaseInternalSettings.string_block_size.defaultValue(), 0, GraphDatabaseInternalSettings.array_block_size.defaultValue(), 0));
// when
Config config = Config.defaults();
FileSystemAbstraction fs = new DefaultFileSystemAbstraction();
try (JobScheduler jobScheduler = new ThreadPoolJobScheduler()) {
new ParallelBatchImporter(databaseLayout, fs, PageCacheTracer.NULL, PBI_CONFIG, NullLogService.getInstance(), INVISIBLE, EMPTY, config, format, ImportLogic.NO_MONITOR, jobScheduler, Collector.EMPTY, LogFilesInitializer.NULL, IndexImporterFactory.EMPTY, EmptyMemoryTracker.INSTANCE).doImport(input);
// then compare estimates with actual disk sizes
SingleFilePageSwapperFactory swapperFactory = new SingleFilePageSwapperFactory(fs);
try (PageCache pageCache = new MuninnPageCache(swapperFactory, jobScheduler, MuninnPageCache.config(1000));
NeoStores stores = new StoreFactory(databaseLayout, config, new DefaultIdGeneratorFactory(fs, immediate(), databaseLayout.getDatabaseName()), pageCache, fs, NullLogProvider.getInstance(), PageCacheTracer.NULL, writable()).openAllNeoStores()) {
assertRoughlyEqual(estimates.numberOfNodes(), stores.getNodeStore().getNumberOfIdsInUse());
assertRoughlyEqual(estimates.numberOfRelationships(), stores.getRelationshipStore().getNumberOfIdsInUse());
assertRoughlyEqual(estimates.numberOfNodeProperties() + estimates.numberOfRelationshipProperties(), calculateNumberOfProperties(stores));
}
long measuredPropertyStorage = propertyStorageSize();
long estimatedPropertyStorage = estimates.sizeOfNodeProperties() + estimates.sizeOfRelationshipProperties();
assertThat(estimatedPropertyStorage).as("Estimated property storage size of %s must be within 10%% of the measured size of %s.", bytesToString(estimatedPropertyStorage), bytesToString(measuredPropertyStorage)).isCloseTo(measuredPropertyStorage, withPercentage(10.0));
}
}
use of org.neo4j.io.fs.DefaultFileSystemAbstraction in project neo4j by neo4j.
the class ConfigurableStandalonePageCacheFactoryTest method mustAutomaticallyStartEvictionThread.
@Test
void mustAutomaticallyStartEvictionThread() throws Exception {
try (FileSystemAbstraction fs = new DefaultFileSystemAbstraction();
JobScheduler jobScheduler = new ThreadPoolJobScheduler()) {
Path file = testDirectory.homePath().resolve("a").normalize();
fs.write(file).close();
try (PageCache cache = ConfigurableStandalonePageCacheFactory.createPageCache(fs, jobScheduler, PageCacheTracer.NULL);
PagedFile pf = cache.map(file, 4096, DEFAULT_DATABASE_NAME);
PageCursor cursor = pf.io(0, PagedFile.PF_SHARED_WRITE_LOCK, CursorContext.NULL)) {
// If the eviction thread has not been started, then this test will block forever.
for (int i = 0; i < 10_000; i++) {
assertTrue(cursor.next());
cursor.putInt(42);
}
}
}
}
Aggregations