Dmitry Lychagin has posted comments on this change.

Change subject: [ASTERIXDB-1972][COMP][RT][TX] index-only plan
......................................................................


Patch Set 41:

(5 comments)

Here's the new batch of comments. More to come.

https://asterix-gerrit.ics.uci.edu/#/c/1866/41/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Dataset.java
File 
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Dataset.java:

Line 595:         } else if (index.getKeyFieldNames().isEmpty()) {
Just curious, what happens with secondary primary index plans now? How do they 
co-exist with the new index-only plans?


https://asterix-gerrit.ics.uci.edu/#/c/1866/41/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/SecondaryIndexSearchOperationCallbackFactory.java
File 
asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/SecondaryIndexSearchOperationCallbackFactory.java:

PS41, Line 36: SecondaryIndexSearchOperationCallbackFactory
Can move the new code into a separate class? Keep this one as it was and 
introduce new class SecondaryIndexInstantSearchOperationCallbackFactory which 
will create SecondaryIndexInstantSearchOperationCallback. 
So Dataset.getSearchCallbackFactory() will either instantiate the 
SecondaryIndexSearchOperationCallbackFactory if no index-only plan or the new 
SecondaryIndexInstantSearchOperationCallbackFactory if there's an index-only 
plan.


https://asterix-gerrit.ics.uci.edu/#/c/1866/41/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractUnnestMapOperator.java
File 
hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/AbstractUnnestMapOperator.java:

PS41, Line 40: generateConditionalSplitVar
We need to create a better name for this field. 'generateConditionalSplitVar' 
is specific to index-only plan. This field indicates that the result of 
searchCallBack.proceed() should be returned. So we need to call it that way.


Line 53:     public List<LogicalVariable> getScanVariables() {
You need to account for the extra variable here if generateConditionalSplitVar 
= true. The new extra variable is not a scan variable so should not be returned 
here.


https://asterix-gerrit.ics.uci.edu/#/c/1866/41/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/util/OperatorPropertiesUtil.java
File 
hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/util/OperatorPropertiesUtil.java:

Line 281:     public static void typeOpRec(AbstractLogicalOperator lOp, 
IOptimizationContext context) throws AlgebricksException {
Why typeOpRec() was split into two methods? Seem like this (second) one is only 
used from the first one.


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1866
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ifd5c9ab1cf2e4bedb7d8db582441919875e74d51
Gerrit-PatchSet: 41
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Taewoo Kim <[email protected]>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Dmitry Lychagin <[email protected]>
Gerrit-Reviewer: Ildar Absalyamov <[email protected]>
Gerrit-Reviewer: Jenkins <[email protected]>
Gerrit-Reviewer: Taewoo Kim <[email protected]>
Gerrit-Reviewer: Till Westmann <[email protected]>
Gerrit-Reviewer: Yingyi Bu <[email protected]>
Gerrit-HasComments: Yes

Reply via email to