Невозможно установить размер кэша страниц со встроенным Neo4J / Gremlin - PullRequest
0 голосов
/ 20 марта 2019

Я пишу программу на Java, которая использует встроенный граф Neo4j с TinkerPop.Вот соответствующий раздел моего pom

    <dependency>
        <groupId>org.apache.tinkerpop</groupId>
        <artifactId>neo4j-gremlin</artifactId>
        <version>3.3.1</version>
    </dependency>
    <dependency>
        <groupId>org.neo4j</groupId>
        <artifactId>neo4j-tinkerpop-api-impl</artifactId>
        <version>0.7-3.2.3</version>
    </dependency>
    <dependency>
        <groupId>org.neo4j</groupId>
        <artifactId>neo4j-tinkerpop-api</artifactId>
        <version>0.1</version>
    </dependency>

Я хочу добавить опцию конфигурации для установки размера кэша страницы при инициализации графика.Мое пространство кучи PS Old Gen заполняется.

В настоящее время я открываю граф Neo4j, передавая ему объект org.apache.commons.configuration.Configuration .Я пытаюсь установить два свойства, каталог и pagecache.Когда я запускаю свою программу, обрабатывается свойство " gremlin.neo4j.directory ", а не " dbms.memory.pagecache.size ", согласно файлу журнала графа.,Первая строка файла журнала:

2019-03-20 14: 38: 36.155 + 0000 WARN [onipPageCache] Параметр dbms.memory.pagecache.size не настроен.Рекомендуется, чтобы этот параметр всегда был явно настроен для обеспечения сбалансированной конфигурации системы.До тех пор вместо этого будет использоваться вычисленное эвристическое значение 8310519808 байт.

Используя jvisualvm и jconsole, я вижу, что память в PS Old gen заполняется объектами, связанными с кэшированием страниц, поэтомуЯ пытаюсь регулировать, сколько данных кешируется Neo4j.

Вот мой код:

Configuration configuration = new BaseConfiguration();
configuration.addProperty("gremlin.neo4j.directory", "tmp/mygraph");
configuration.addProperty("dbms.memory.pagecache.size", "500m");

myGraph = Neo4jGraph.open(configuration);    

Есть идеи, что я делаю неправильно?

1 Ответ

1 голос
/ 20 марта 2019

Я думаю, что вам нужно добавить префикс ваших конфигурационных ключей, специфичных для Neo4j, к gremlin.neo4j.conf, таким образом:

Configuration configuration = new BaseConfiguration();
configuration.addProperty("gremlin.neo4j.directory", "tmp/mygraph");
configuration.addProperty("gremlin.neo4j.conf.dbms.memory.pagecache.size", "500m");

myGraph = Neo4jGraph.open(configuration);  
...