如何在Blazegraph中提高SPARQL更新性能?

时间:2017-01-25 09:33:17

标签: performance sparql triplestore blazegraph

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

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

这样的请求的执行时间在我的笔记本电脑上平均约5-7秒,但我也注意到Blazegraph本身的CPU和磁盘利用率虽然响应时间很长但仍然很低。我想,如果存在瓶颈,某些东西应该达到上限(100%的CPU,或高分辨率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版:

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)

0 个答案:

没有答案