Thu, Sep 12
Thu, Aug 29
Differences in bnodes might be tolerated with additional replacement. The cleanup stage could be merged with initial sed+sort
Aug 2 2019
Looking at query exetution plans, ProjectionOp for the query with lang() for coDescription got arranged prior to materialization of coDescription, so it (along with its lang) has not got the way to the projection. The reason for such behavior needs some more research. Will update on that.
Jul 1 2019
Fixed optional support and added testcase for that code path.
Service projectedVars actually include both inbound and outbound variables (those which are params for the service and those which are produced by labels lookup. But for the check if service node could be reordered prior to any clauses placed at the bottom of the query, we need to consider only inbound variables, so they would be available for the service call, and all outbound vars available for the latter filters and other clauses.
Jun 25 2019
The idea for the change is to replace runLast hint with more complicated logic. So there are 3 steps:
- first 'most probable optimal' placement to allow for EmptyLabelServiceOptimizer to see the variables to process.
- then EmptyLabelServiceOptimizer adds statement patterns for resolutions.
- and then additional optimizer step rearranges LabelService to the latest possible step before any clauses, which might use the variables bound by LabelService.
May 7 2019
The EmptyLabelServiceOptimizer running optimizeJoinGroup(AST2BOpContext, StaticAnalysis, IBindingSet, JoinGroupNode) as of current takes projection from StaticAnalisys.getQueryRoot() as parent of JoinGroupNode wrapping statement pattern of the LabelService clause is unavailable.
May 6 2019
Additionally tested configuration option with only Raw records disabled, comparing to original baseline:
Configuration options are assigned in RWStore.properties. Particular options are:
This seems to be optimizers order problem.
CompareBOp executes to check if "Ada"@en equals to ?langLabel several times but the ?langLabel is not bound on all occasions:
while running ASTDeferredIVResolution
while running com.bigdata.rdf.sparql.ast.optimizers.ASTSetValueExpressionsOptimizer
then while running ConditionalRoutingOp for ChunkedRunningQuery
Apr 29 2019
Complete test logs attached
Load performance for the tested configurations on isolated environment (i7-7700HQ, 8 cores 2.8GHz, 32GB RAM, SSD Samsung 960 PRO)
Attached results of the load 100 ttl.gz files with different configurations
- original baseline (commit blazegraph 895a4f3bd003ddb4b1f31257f642ca3616bca79b, rdf 4245b2a5bc0c7d4b369a43ba512b5e537dac07a4)
- reference URIs inlining,
- reference URIs inlining, raw records disabled per T213210
- reference URIs inlining, raw records disabled, INLINE_TEXT_LITERALS for short strings per T213210