/// <summary> /// Create page cache </summary> /// <param name="fileSystem"> file system that page cache will be based on </param> /// <param name="pageCacheTracer"> global page cache tracer </param> /// <param name="pageCursorTracerSupplier"> supplier of thread local (transaction local) page cursor tracer that will provide /// thread local page cache statistics </param> /// <param name="config"> page cache configuration </param> /// <param name="versionContextSupplier"> version context supplier </param> /// <param name="jobScheduler"> page cache job scheduler </param> /// <returns> created page cache instance </returns> public static PageCache CreatePageCache(FileSystemAbstraction fileSystem, PageCacheTracer pageCacheTracer, PageCursorTracerSupplier pageCursorTracerSupplier, Config config, VersionContextSupplier versionContextSupplier, JobScheduler jobScheduler) { config.AugmentDefaults(GraphDatabaseSettings.pagecache_memory, "8M"); ZoneId logTimeZone = config.Get(GraphDatabaseSettings.db_timezone).ZoneId; FormattedLogProvider logProvider = FormattedLogProvider.withZoneId(logTimeZone).toOutputStream(System.err); ConfiguringPageCacheFactory pageCacheFactory = new ConfiguringPageCacheFactory(fileSystem, config, pageCacheTracer, pageCursorTracerSupplier, logProvider.GetLog(typeof(PageCache)), versionContextSupplier, jobScheduler); return(pageCacheFactory.OrCreatePageCache); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldWarnWhenCreatedWithConfiguredPageCache() public virtual void ShouldWarnWhenCreatedWithConfiguredPageCache() { // Given Config config = Config.defaults(stringMap(GraphDatabaseSettings.mapped_memory_page_size.name(), "4096", pagecache_swapper.name(), TEST_PAGESWAPPER_NAME)); AssertableLogProvider logProvider = new AssertableLogProvider(); Log log = logProvider.GetLog(typeof(PageCache)); // When ConfiguringPageCacheFactory pageCacheFactory = new ConfiguringPageCacheFactory(FsRule.get(), config, PageCacheTracer.NULL, Org.Neo4j.Io.pagecache.tracing.cursor.PageCursorTracerSupplier_Fields.Null, log, EmptyVersionContextSupplier.EMPTY, _jobScheduler); // Then using (PageCache ignore = pageCacheFactory.OrCreatePageCache) { logProvider.RawMessageMatcher().assertContains("The setting unsupported.dbms.memory.pagecache.pagesize does not have any effect. It is " + "deprecated and will be removed in a future version."); } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldFitAsManyPagesAsItCan() public virtual void ShouldFitAsManyPagesAsItCan() { // Given long pageCount = 60; long memory = MuninnPageCache.memoryRequiredForPages(pageCount); Config config = Config.defaults(pagecache_memory, Convert.ToString(memory)); // When ConfiguringPageCacheFactory factory = new ConfiguringPageCacheFactory(FsRule.get(), config, PageCacheTracer.NULL, Org.Neo4j.Io.pagecache.tracing.cursor.PageCursorTracerSupplier_Fields.Null, NullLog.Instance, EmptyVersionContextSupplier.EMPTY, _jobScheduler); // Then using (PageCache cache = factory.OrCreatePageCache) { assertThat(cache.PageSize(), equalTo(Org.Neo4j.Io.pagecache.PageCache_Fields.PAGE_SIZE)); assertThat(cache.MaxCachedPages(), equalTo(pageCount)); } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void mustUseAndLogConfiguredPageSwapper() public virtual void MustUseAndLogConfiguredPageSwapper() { // Given Config config = Config.defaults(stringMap(pagecache_memory.name(), "8m", pagecache_swapper.name(), TEST_PAGESWAPPER_NAME)); AssertableLogProvider logProvider = new AssertableLogProvider(); Log log = logProvider.GetLog(typeof(PageCache)); // When ConfiguringPageCacheFactory cacheFactory = new ConfiguringPageCacheFactory(FsRule.get(), config, PageCacheTracer.NULL, Org.Neo4j.Io.pagecache.tracing.cursor.PageCursorTracerSupplier_Fields.Null, log, EmptyVersionContextSupplier.EMPTY, _jobScheduler); cacheFactory.OrCreatePageCache.close(); // Then assertThat(PageSwapperFactoryForTesting.CountCreatedPageSwapperFactories(), @is(1)); assertThat(PageSwapperFactoryForTesting.CountConfiguredPageSwapperFactories(), @is(1)); logProvider.RawMessageMatcher().assertContains(TEST_PAGESWAPPER_NAME); }