芝麻 NativeRDF 写入 /tmp

Sesame NativeRDF writing to /tmp

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

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

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

将 JRE 配置为有更多可用堆 space 也是值得的,这样磁盘同步就不太可能启动,即使是在大型更新时也是如此。