Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 1A7E0200BEA for ; Tue, 13 Dec 2016 00:32:31 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 19021160B2A; Mon, 12 Dec 2016 23:32:31 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 6171E160B22 for ; Tue, 13 Dec 2016 00:32:30 +0100 (CET) Received: (qmail 27519 invoked by uid 500); 12 Dec 2016 23:32:29 -0000 Mailing-List: contact dev-help@atlas.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@atlas.incubator.apache.org Delivered-To: mailing list dev@atlas.incubator.apache.org Received: (qmail 27502 invoked by uid 99); 12 Dec 2016 23:32:29 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 12 Dec 2016 23:32:29 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 4304B1AAA05 for ; Mon, 12 Dec 2016 23:32:29 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -6.219 X-Spam-Level: X-Spam-Status: No, score=-6.219 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.999] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id nDd476c4_gzv for ; Mon, 12 Dec 2016 23:32:28 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with SMTP id 344F261A17 for ; Mon, 12 Dec 2016 23:32:28 +0000 (UTC) Received: (qmail 19027 invoked by uid 99); 12 Dec 2016 23:29:59 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 12 Dec 2016 23:29:59 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id D281F2C03DD for ; Mon, 12 Dec 2016 23:29:58 +0000 (UTC) Date: Mon, 12 Dec 2016 23:29:58 +0000 (UTC) From: "Suma Shivaprasad (JIRA)" To: dev@atlas.incubator.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (ATLAS-1369) Optimize Gremlin created by DSL Translator MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Mon, 12 Dec 2016 23:32:31 -0000 [ https://issues.apache.org/jira/browse/ATLAS-1369?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15743508#comment-15743508 ] Suma Shivaprasad commented on ATLAS-1369: ----------------------------------------- Thanks [~jnhagelb] > Optimize Gremlin created by DSL Translator > ------------------------------------------ > > Key: ATLAS-1369 > URL: https://issues.apache.org/jira/browse/ATLAS-1369 > Project: Atlas > Issue Type: Improvement > Reporter: Jeffrey Hagelberg > Assignee: Jeffrey Hagelberg > Attachments: rb54680.patch > > > The way the queries are generated now, in many cases the indices are not used when executing queries. The main problem is that gremlin cannot currently use "has" expressions within an "and" or an "or". This JIRA introduces a GremlinQueryOptimizer that attempts to extract "has" expressions out of "and" expressions and turn "or" expressions into unions. > The code being submitted has only been tested with TP 3 at this point. There are some issues that need to be fixed before this can be used with TP 2: > - FunctionGenerator - generates functions that take GraphTraversal as an argument. That should be changed to GreminPipeline when using TP 2. The return type should probably come from a new method in GremlinExpressionFactory > - loop support - for TP2, we will need to add logic to make sure that the loop call is not separated from the alias it references > - alias handling - the alias safe/restore logic in ExpandOrsOptimization.getBaseResultExpression() may be need to adjusted for TP2 > - possibly other issues, TBD -- This message was sent by Atlassian JIRA (v6.3.4#6332)