在Sesame NativeRDF上执行SPARQL更新时,将临时数据写入/ tmp。
在我们的情况下,这可能相当大,因此超出了/ tmp上的可用空间。
该目录在哪里设置,以便我们可以将其(重新)配置到其他位置?

最佳答案

NativeStore在内部使用MemoryOverflowModel,当计算可用RAM的量不足以继续将所有内容保留在RAM中时,它们会将数据同步到磁盘(在临时目录中)。这样创建的临时文件仅在MemoryOverflowModel对象的生存期内存在(这最多是事务的持续时间)。

MemoryOverflowModel使用系统属性java.io.tmpdir定义的操作系统默认配置的临时目录。因此,如果您希望将其配置为使用其他目录,请确保将此属性设置为其他值。最简单的方法是在调用JRE(java -Djava.io.tmpdir=/some/other/dir ...)时重写。

它还需要将JRE配置为具有更多可用的堆空间,因此即使进行大型更新,磁盘同步也不太可能启动。

08-28 19:39