无法使用嵌入式Neo4J / Gremlin设置页面缓存大小

时间:2019-03-20 15:03:52

标签: neo4j gremlin

我正在编写一个Java程序,该程序使用带有TinkerPop的嵌入式Neo4j图。这是我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堆空间已满。

当前,我通过向它传递 org.apache.commons.configuration.Configuration 对象来打开Neo4j图。我正在尝试设置两个属性,即目录和页面缓存。根据图表的显示,当我运行程序时,将处理“ gremlin.neo4j.directory ”属性,但不会处理“ dbms.memory.pagecache.size ”属性。日志文件。日志文件的第一行是这样的:

  

2019-03-20 14:38:36.155 + 0000警告[o.n.i.p.PageCache]   尚未配置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 个答案:

答案 0 :(得分:1)

我认为您需要在{4}之前为Neo4j特定的配置密钥添加前缀:

gremlin.neo4j.conf