3

我正在尝试执行一个大型 SPARQL 更新请求,基本上使用一个INSERT DATA命令和一组DELETE ... WHERE命令。该请求执行一些三元组的插入并删除受INSERT命令影响的个人功能属性的旧值,以保持数据一致;平均每个请求 300-400 次操作。为了执行请求,我使用 Apache JenaUpdateProcessor和 Blazegraph ( http://localhost:9999/blazegraph/namespace/kb/update) 的 SPARQL 更新端点:

UpdateProcessor processor = UpdateExecutionFactory.createRemote(request, updateUrl, client);
processor.execute()

这种请求的执行时间在我的笔记本电脑上平均约为 5-7 秒,但我也注意到 Blazegraph 本身的 CPU 和磁盘利用率很低,尽管响应时间很长。我想,如果有瓶颈,应该会达到上限(100% 的 CPU 或高 dist I/O)。但是它们仍然很低......批量负载在这里不适用,因为我不仅需要添加新的三元组,还需要根据这些新的三元组修改数据集。

如何改进?也许我错过了 Blazegraph 配置中的某些内容......

这是我的RWStore.properties

com.bigdata.rdf.sail.truthMaintenance=false
com.bigdata.rdf.store.AbstractTripleStore.quads=true
com.bigdata.rdf.store.AbstractTripleStore.statementIdentifiers=false
com.bigdata.rdf.store.AbstractTripleStore.textIndex=true
com.bigdata.rdf.store.AbstractTripleStore.axiomsClass=com.bigdata.rdf.axioms.NoAxioms

com.bigdata.rdf.sail.isolatableIndices=false
com.bigdata.rdf.sail.bufferCapacity=100000

com.bigdata.journal.AbstractJournal.file=./journal/blazegraph.jnl
com.bigdata.journal.AbstractJournal.bufferMode=DiskRW

com.bigdata.btree.writeRetentionQueue.capacity=4000
com.bigdata.btree.BTree.branchingFactor=512

com.bigdata.rdf.store.DataLoader.commit=Incremental

Blazegraph 版本 2.1.1。启动选项:

java -server -Xmx8g -XX:+UseG1GC -Dbigdata.propertyFile=RWStore.properties -jar blazegraph.jar

爪哇版:

java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)
4

0 回答 0