Class StatementGroupAndJoinOptimizer
java.lang.Object
org.eclipse.rdf4j.query.algebra.helpers.AbstractSimpleQueryModelVisitor<OptimizationException>
org.eclipse.rdf4j.federated.optimizer.StatementGroupAndJoinOptimizer
- All Implemented Interfaces:
FedXOptimizer,QueryModelVisitor<OptimizationException>
public class StatementGroupAndJoinOptimizer
extends AbstractSimpleQueryModelVisitor<OptimizationException>
implements FedXOptimizer
Optimizer with the following tasks:
1. Group
ExclusiveStatement into ExclusiveGroup 2. Adjust the join order using
DefaultFedXCostModel- Author:
- as
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionStatementGroupAndJoinOptimizer(QueryInfo queryInfo, FedXCostModel costModel) -
Method Summary
Modifier and TypeMethodDescriptionprotected doubleestimateCost(TupleExpr tupleExpr, Set<String> joinVars) formGroups(List<TupleExpr> originalArgs) GroupExclusiveStatements having the same source into anExclusiveGroup.voidprotected voidvoidmeetOther(QueryModelNode node) voidOptimize the provided tuple expressionoptimizeJoinOrder(List<TupleExpr> joinArgs) Join Order Optimizer Group -> Statements according to number of free Variables Additional Heuristics: - ExclusiveGroups are cheaper than any other subquery - owned statements are cheaper if they have a single free variableMethods inherited from class org.eclipse.rdf4j.query.algebra.helpers.AbstractSimpleQueryModelVisitor
meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meetBinaryTupleOperator, meetBinaryValueOperator, meetCompareSubQueryValueOperator, meetNAryValueOperator, meetSubQueryValueOperator, meetUnaryTupleOperator, meetUnaryValueOperator, meetUnsupported, meetUpdateExpr
-
Field Details
-
queryInfo
-
-
Constructor Details
-
StatementGroupAndJoinOptimizer
-
-
Method Details
-
optimize
Description copied from interface:FedXOptimizerOptimize the provided tuple expression- Specified by:
optimizein interfaceFedXOptimizer
-
meet
- Specified by:
meetin interfaceQueryModelVisitor<OptimizationException>- Overrides:
meetin classAbstractSimpleQueryModelVisitor<OptimizationException>
-
meetOther
- Specified by:
meetOtherin interfaceQueryModelVisitor<OptimizationException>- Overrides:
meetOtherin classAbstractSimpleQueryModelVisitor<OptimizationException>
-
meetNJoin
-
formGroups
GroupExclusiveStatements having the same source into anExclusiveGroup.- Parameters:
originalArgs-- Returns:
- the new (potentially grouped) join arguments. If empty, the join will not produce any results.
-
optimizeJoinOrder
Join Order Optimizer Group -> Statements according to number of free Variables Additional Heuristics: - ExclusiveGroups are cheaper than any other subquery - owned statements are cheaper if they have a single free variable- Parameters:
joinArgs-- Returns:
-
estimateCost
-