【发布时间】:2016-03-21 09:34:18
【问题描述】:
在 Sesame NativeRDF 上执行 SPARQL 更新时,临时数据将写入 /tmp。 在我们的例子中,这可能是相当大的,因此超出了 /tmp 上的可用空间。 该目录设置在哪里,以便我们可以(重新)将其配置到其他位置?
【问题讨论】:
在 Sesame NativeRDF 上执行 SPARQL 更新时,临时数据将写入 /tmp。 在我们的例子中,这可能是相当大的,因此超出了 /tmp 上的可用空间。 该目录设置在哪里,以便我们可以(重新)将其配置到其他位置?
【问题讨论】:
NativeStore 在内部使用MemoryOverflowModels,当它计算出可用 RAM 的数量不足以继续将所有内容保存在 RAM 中时,它将数据同步到磁盘(在临时目录中)。这样创建的临时文件只存在于MemoryOverflowModel 对象的生命周期内(最多也就是事务的持续时间)。
MemoryOverflowModel 使用系统属性java.io.tmpdir 定义的为您的操作系统配置的默认临时目录。因此,如果您希望将其配置为使用不同的目录,请确保将此属性设置为不同的值。最简单的方法是在调用 JRE (java -Djava.io.tmpdir=/some/other/dir ...) 时覆盖。
配置您的 JRE 以获得更多可用堆空间也是值得的,这样磁盘同步就不太可能启动,即使在大更新时也是如此。
【讨论】: