----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/73128/#review222455 -----------------------------------------------------------
repository/src/main/java/org/apache/atlas/query/AtlasDSL.java Lines 140 (patched) <https://reviews.apache.org/r/73128/#comment311512> Can't this.queryMetadata be used here as well, similar to #127? repository/src/main/java/org/apache/atlas/query/AtlasDSL.java Lines 146 (patched) <https://reviews.apache.org/r/73128/#comment311528> Lines #140 - #146 is repeat of lines in translate() above. And the caller TraversalBaseExecutor.toTraversal() calls both methods, on the same Translator object. Consider creating gremlinQueryComposer in the constructor. repository/src/main/java/org/apache/atlas/query/AtlasDSL.java Lines 177 (patched) <https://reviews.apache.org/r/73128/#comment311513> Consider marking all data members as final, as they are unchanged after initialization in constructor. repository/src/main/java/org/apache/atlas/query/GremlinQuery.java Lines 26 (patched) <https://reviews.apache.org/r/73128/#comment311514> Consider marking result as final. repository/src/main/java/org/apache/atlas/query/GremlinQueryComposer.java Lines 85 (patched) <https://reviews.apache.org/r/73128/#comment311529> Consider marking all members final, as none of them need to be updated after construction. repository/src/main/java/org/apache/atlas/query/GremlinQueryComposer.java Lines 713 (patched) <https://reviews.apache.org/r/73128/#comment311530> - childClauses doesn't seem to be used. Please review and remove if unused - if childClauses is necessary (i.e. will be used later), consider marking it as final repository/src/main/java/org/apache/atlas/query/GremlinQueryComposer.java Line 693 (original), 766 (patched) <https://reviews.apache.org/r/73128/#comment311531> Consider marking validator as final, as it is unchanged after construction. repository/src/main/java/org/apache/atlas/query/executors/GremlinClauseToTraversalTranslator.java Lines 51 (patched) <https://reviews.apache.org/r/73128/#comment311533> subTraversals is used only within process() method. Consider removing it as a member. repository/src/main/java/org/apache/atlas/query/executors/GremlinClauseToTraversalTranslator.java Lines 72 (patched) <https://reviews.apache.org/r/73128/#comment311535> Review if subTraversals should be reset/initialized for each iteration of the for-loop at #63. repository/src/main/java/org/apache/atlas/query/executors/GremlinClauseToTraversalTranslator.java Lines 93 (patched) <https://reviews.apache.org/r/73128/#comment311532> subTraversals could be null, if #64 is false. Consider avoiding such implicit assumption (that subTraversals will not be referenced when #64 is false) - by initializing subTraversals to an ArrayList. - Madhan Neethiraj On Jan. 12, 2021, 11:49 p.m., Ashutosh Mestry wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/73128/ > ----------------------------------------------------------- > > (Updated Jan. 12, 2021, 11:49 p.m.) > > > Review request for atlas, Apoorv Naik, Nikhil Bonte, Nixon Rodrigues, Pinal > Shah, and Sarath Subramanian. > > > Bugs: ATLAS-2932 > https://issues.apache.org/jira/browse/ATLAS-2932 > > > Repository: atlas > > > Description > ------- > > **Approach** > General Approach: > - Ensure that Gremlin-based implementation continues to function. This will > ensure backward compatibility and will guarad against regressions or behavior > deviations, if any, are introduced with the new implementation. > - Continue using existing _GremlinQueryComposer_. > - Translate the clauses to _AtlasGraphTraversal_. > - Projects that were earlier handled in Gremlin query are now handled in a > separate Java class. > > Details: > - Modified: _GremlinQueryComposer_: Continue composing queries using existing > claues. Additions alone. > - New: _DSLQueryExecutor_ Instantiates old or new executor based on flag. > - Modifed: _EntityDiscoveryService_ uses the new exectors. > - New _GremlinToTraversalTranslator_: Converts Gremlin clauses to > _AtlasGraphTraversal_. > - Modified: _AtlasGraphTraversal_: Additional methods. > - New: _SelectClauseProjections_: All queries with select operations. > > **Configuration** > _atlas.dsl.executor.traversal_ > - true: Uses the traversal-based implementation for query execution. > - false: Uses the script-engine based implementation for query execution. > > **Credits** > - Apoorv Naik (apoorvnaik): Original implementation. > - Nikhil Bonte (nbonte): Continued on Apoorv's implementation and addressed > short-comings. > > > Diffs > ----- > > > graphdb/api/src/main/java/org/apache/atlas/repository/graphdb/AtlasGraph.java > c016f6340 > > graphdb/api/src/main/java/org/apache/atlas/repository/graphdb/AtlasGraphTraversal.java > 881bb1e0f > > graphdb/janus/src/main/java/org/apache/atlas/repository/graphdb/janus/AtlasJanusGraph.java > 0dd573b89 > > graphdb/janus/src/main/java/org/apache/atlas/repository/graphdb/janus/AtlasJanusGraphTraversal.java > c33c4f4d0 > > graphdb/janus/src/test/java/org/apache/atlas/repository/graphdb/janus/GraphQueryTest.java > 4b0176311 > intg/src/main/java/org/apache/atlas/AtlasConfiguration.java ea9f26d47 > > repository/src/main/java/org/apache/atlas/discovery/EntityDiscoveryService.java > 01a6c303a > repository/src/main/java/org/apache/atlas/query/AtlasDSL.java b8a744b35 > repository/src/main/java/org/apache/atlas/query/GremlinClause.java > 9704b0f9e > repository/src/main/java/org/apache/atlas/query/GremlinClauseList.java > 9f30e4dc0 > repository/src/main/java/org/apache/atlas/query/GremlinQuery.java 531f7ae86 > repository/src/main/java/org/apache/atlas/query/GremlinQueryComposer.java > 36b514e84 > repository/src/main/java/org/apache/atlas/query/SelectClauseComposer.java > 969fcd2b1 > > repository/src/main/java/org/apache/atlas/query/executors/DSLQueryExecutor.java > PRE-CREATION > > repository/src/main/java/org/apache/atlas/query/executors/GremlinClauseToTraversalTranslator.java > PRE-CREATION > > repository/src/main/java/org/apache/atlas/query/executors/ScriptEngineBasedExecutor.java > PRE-CREATION > > repository/src/main/java/org/apache/atlas/query/executors/SelectClauseProjections.java > PRE-CREATION > > repository/src/main/java/org/apache/atlas/query/executors/TraversalBasedExecutor.java > PRE-CREATION > repository/src/test/java/org/apache/atlas/query/DSLQueriesTest.java > 3bb3b07bf > > > Diff: https://reviews.apache.org/r/73128/diff/5/ > > > Testing > ------- > > **Unit Tests** > - Additional tests. > - _GremlinCompoerTest_ continues to validate the clause creation. > - Improved validation for _minMaxCount_ tests. > - Refactored: _TableValidator_ Validates output from a query with select > claues. > > **Volume Tests** > - Old implementation: 528 queries take over 10 mins to execute. > - New implemeentations: 528 queries execute in 7 secs. > > > Thanks, > > Ashutosh Mestry > >
