>From <[email protected]>:
[email protected] has uploaded this change for review. (
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18254 )
Change subject: [ASTERIX-3376][COMP] Choose smaller side's sample
......................................................................
[ASTERIX-3376][COMP] Choose smaller side's sample
Change-Id: I63445673ba10782d85717b780c07687db8f8011f
---
M
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/Stats.java
1 file changed, 20 insertions(+), 2 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/54/18254/1
diff --git
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/Stats.java
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/Stats.java
index 785da69..574e207 100644
---
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/Stats.java
+++
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/Stats.java
@@ -163,12 +163,21 @@
return productivity / card1;
}
} else {
- ILogicalOperator leafInput = joinEnum.leafInputs.get(idx2 - 1); //
we arbitrarily pick one side
+ ILogicalOperator leafInput;
+ LogicalVariable var;
+ // choose the smaller side sample; better results this way for
sure!
+ if (card1 < card2) {
+ leafInput = joinEnum.leafInputs.get(idx1 - 1);
+ var = exprUsedVars.get(0);
+ } else {
+ leafInput = joinEnum.leafInputs.get(idx2 - 1);
+ var = exprUsedVars.get(1);
+ }
Index index = findIndex(leafInput);
if (index == null) {
return 1.0;
}
- List<List<IAObject>> result =
runSamplingQueryDistinct(this.optCtx, leafInput, exprUsedVars.get(1), index);
+ List<List<IAObject>> result =
runSamplingQueryDistinct(this.optCtx, leafInput, var, index);
if (result == null) {
return 1.0;
}
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18254
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: I63445673ba10782d85717b780c07687db8f8011f
Gerrit-Change-Number: 18254
Gerrit-PatchSet: 1
Gerrit-Owner: [email protected]
Gerrit-MessageType: newchange