protected internal virtual T CreatePageCache(FileSystemAbstraction fs, int maxPages, PageCacheTracer tracer, PageCursorTracerSupplier cursorTracerSupplier, VersionContextSupplier versionContextSupplier)
        {
            PageSwapperFactory swapperFactory = new SingleFilePageSwapperFactory();

            swapperFactory.Open(fs, Configuration.EMPTY);
            return(CreatePageCache(swapperFactory, maxPages, tracer, cursorTracerSupplier, versionContextSupplier));
        }
Beispiel #2
0
        /// <summary>
        /// Opens a new <seealso cref="PageCache"/> with the provided file system and config.
        /// </summary>
        /// <param name="fs"> <seealso cref="FileSystemAbstraction"/> to use for the <seealso cref="PageCache"/>. </param>
        /// <param name="overriddenConfig"> specific <seealso cref="PageCacheConfig"/> overriding config provided in <seealso cref="PageCacheRule"/>
        /// constructor, if any. </param>
        /// <returns> the opened <seealso cref="PageCache"/>. </returns>
        public virtual PageCache GetPageCache(FileSystemAbstraction fs, PageCacheConfig overriddenConfig)
        {
            CloseExistingPageCache();
            int?                     pageSize             = SelectConfig(BaseConfig.pageSize, overriddenConfig.PageSize, null);
            PageCacheTracer          cacheTracer          = SelectConfig(BaseConfig.tracer, overriddenConfig.Tracer, PageCacheTracer.NULL);
            PageCursorTracerSupplier cursorTracerSupplier = SelectConfig(BaseConfig.pageCursorTracerSupplier, overriddenConfig.PageCursorTracerSupplier, Org.Neo4j.Io.pagecache.tracing.cursor.PageCursorTracerSupplier_Fields.Null);

            SingleFilePageSwapperFactory factory = new SingleFilePageSwapperFactory();

            factory.Open(fs, Configuration.EMPTY);
            VersionContextSupplier contextSupplier = EmptyVersionContextSupplier.EMPTY;
            MemoryAllocator        mman            = MemoryAllocator.createAllocator(SelectConfig(BaseConfig.memory, overriddenConfig.Memory, "8 MiB"), new LocalMemoryTracker());

            InitializeJobScheduler();
            if (pageSize != null)
            {
                PageCache = new MuninnPageCache(factory, mman, pageSize.Value, cacheTracer, cursorTracerSupplier, contextSupplier, JobScheduler);
            }
            else
            {
                PageCache = new MuninnPageCache(factory, mman, cacheTracer, cursorTracerSupplier, contextSupplier, JobScheduler);
            }
            PageCachePostConstruct(overriddenConfig);
            return(PageCache);
        }
Beispiel #3
0
        internal static PageCache PageCache(JobScheduler jobScheduler)
        {
            SingleFilePageSwapperFactory swapper = new SingleFilePageSwapperFactory();
            DefaultFileSystemAbstraction fs      = new DefaultFileSystemAbstraction();

            swapper.Open(fs, EMPTY);
            PageCursorTracerSupplier cursorTracerSupplier = Org.Neo4j.Io.pagecache.tracing.cursor.PageCursorTracerSupplier_Fields.Null;

            return(new MuninnPageCache(swapper, 100, NULL, cursorTracerSupplier, EmptyVersionContextSupplier.EMPTY, jobScheduler));
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @BeforeEach void createPageCache()
        internal virtual void CreatePageCache()
        {
            SingleFilePageSwapperFactory factory = new SingleFilePageSwapperFactory();

            factory.Open(new DefaultFileSystemAbstraction(), Configuration.EMPTY);
            MemoryAllocator mman = MemoryAllocator.createAllocator("8 MiB", new LocalMemoryTracker());

            _jobScheduler = new ThreadPoolJobScheduler();
            _pageCache    = new MuninnPageCache(factory, mman, 256, PageCacheTracer.NULL, Org.Neo4j.Io.pagecache.tracing.cursor.PageCursorTracerSupplier_Fields.Null, EMPTY, _jobScheduler);
            _layout       = SimpleLongLayout.LongLayout().withFixedSize(true).build();
        }
Beispiel #5
0
        public static PageCache CreatePageCache(FileSystemAbstraction fileSystem, JobScheduler jobScheduler)
        {
            SingleFilePageSwapperFactory factory = new SingleFilePageSwapperFactory();

            factory.Open(fileSystem, Configuration.EMPTY);

            PageCacheTracer cacheTracer = PageCacheTracer.NULL;
            DefaultPageCursorTracerSupplier cursorTracerSupplier   = DefaultPageCursorTracerSupplier.INSTANCE;
            VersionContextSupplier          versionContextSupplier = EmptyVersionContextSupplier.EMPTY;
            MemoryAllocator memoryAllocator = MemoryAllocator.createAllocator("8 MiB", GlobalMemoryTracker.INSTANCE);

            return(new MuninnPageCache(factory, memoryAllocator, cacheTracer, cursorTracerSupplier, versionContextSupplier, jobScheduler));
        }
Beispiel #6
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public static void main(String[] args) throws Exception
        public static void Main(string[] args)
        {
            // Just start and immediately close. The process spawning this subprocess will kill it in the middle of all this
            File file = new File(args[0]);

            using (FileSystemAbstraction fs = new DefaultFileSystemAbstraction(), JobScheduler jobScheduler = new ThreadPoolJobScheduler())
            {
                SingleFilePageSwapperFactory swapper = new SingleFilePageSwapperFactory();
                swapper.Open(fs, EMPTY);
                using (PageCache pageCache = new MuninnPageCache(swapper, 10, PageCacheTracer.NULL, Org.Neo4j.Io.pagecache.tracing.cursor.PageCursorTracerSupplier_Fields.Null, EmptyVersionContextSupplier.EMPTY, jobScheduler))
                {
                    fs.DeleteFile(file);
                    (new GBPTreeBuilder <>(pageCache, file, longLayout().build())).Build().Dispose();
                }
            }
        }