>From <[email protected]>:
[email protected] has uploaded this change for review. (
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18463 )
Change subject: [ASTERIXDB-3454][COMP] Make Array Indexes more expensive
......................................................................
[ASTERIXDB-3454][COMP] Make Array Indexes more expensive
Change-Id: I446744d55433016b7343ea45dd88d1df1edce283
---
M
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java
1 file changed, 25 insertions(+), 0 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/63/18463/1
diff --git
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java
index 9fb0e72..0cc9ae0 100644
---
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java
+++
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java
@@ -729,8 +729,24 @@
optionalIndexesInfo.get(j).second = -1.0; // remove all
indexes from consideration.
}
}
+ // Now check if any of the indexes were array indexes. If so double
the cost
+ boolean arrayIndexUsed = false;
+ for (int i = 0; i < mandatoryIndexesInfo.size(); i++)
+ if (mandatoryIndexesInfo.get(i).first.getIndexType() ==
DatasetConfig.IndexType.ARRAY) {
+ arrayIndexUsed = true;
+ break;
+ }
+
+ for (int i = 0; i < optionalIndexesInfo.size(); i++)
+ if (optionalIndexesInfo.get(i).first.getIndexType() ==
DatasetConfig.IndexType.ARRAY) {
+ arrayIndexUsed = true;
+ break;
+ }
totalCost = opCost.costAdd(mandatoryIndexesCost); // cost of all the
indexes chosen
+ if (arrayIndexUsed) {
+ totalCost = totalCost.costAdd(totalCost);
+ }
boolean forceEnum = mandatoryIndexesInfo.size() > 0 || level <=
joinEnum.cboFullEnumLevel;
if (opCost.costLT(this.cheapestPlanCost) || forceEnum) {
pn = new PlanNode(allPlans.size(), joinEnum, this,
datasetNames.get(0), leafInput);
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18463
To unsubscribe, or for help writing mail filters, visit
https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I446744d55433016b7343ea45dd88d1df1edce283
Gerrit-Change-Number: 18463
Gerrit-PatchSet: 1
Gerrit-Owner: [email protected]
Gerrit-MessageType: newchange