我正在编写一个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);
知道我在做什么错吗?
答案 0 :(得分:1)
我认为您需要在{4}之前为Neo4j特定的配置密钥添加前缀:
gremlin.neo4j.conf