Christian R created ATLAS-1875:
----------------------------------

             Summary: Gremlin id is no longer returned for vertices in gremlin 
query
                 Key: ATLAS-1875
                 URL: https://issues.apache.org/jira/browse/ATLAS-1875
             Project: Atlas
          Issue Type: Bug
          Components:  atlas-core
    Affects Versions: 0.8-incubating, trunk
            Reporter: Christian R


Hi, 

while investigating a move from atlas 0.7 to 0.8 (HDP 2.5 to HDP2.6) our tests 
fail on gremlin queries. It turns out that the returned entities in a gremlin 
search in 0.8 does not include the 'id' attribute. 

I've built commit a0bd93945cd45457bbf34a8cb819d4fa4ba72964 (0.8-rc1) on linux 
using berkely and elasticearch to test with. 

The query 
:21000/api/atlas/discovery/search/gremlin?g.V.has('__type.name', 
'Infrastructure').collect()
on our 0.7 cluster gives

{code:json}
{
__type.name: "Infrastructure",
__type.category: "CLASS",
__type: "typeSystem",
id: "16640"
}{code}

while the same query on my 0.8-rc1 installation gives 


{code:javascript}
{
__type.name: "Infrastructure",
__version: "1",
__type.category: "CLASS",
__type.version: "1.0",
__modificationTimestamp: "1497448424134",
__type: "typeSystem",
__type.options: "null",
__type.description: "Infrastructure",
__guid: "77d07283-7622-4305-9c0c-09ac5aee86c8",
__timestamp: "1497448424134"
}
{code}

Certainly more information, but id is missing. 

The very poor DSL performance (see  ATLAS-1868) and a need for advanced queries 
led us to base our queries on gremlin. This has worked very well so far. We 
include both edges and nodes in the result set and use the inVertex, outVertex 
and label info on the edges to rebuild our tree on the client side.

I also see that gremlin has disappeared from version two of the API. Since addE 
and addV lets you insert into the graph I can see how exposing a full gremlin 
endpoint might not be wanted. 

As an example of the queries we run that I haven't been able to express in the 
DSL is 

{noformat}
query = g.V.has('__guid','xxxx').copySplit(
                                _().out('track'), 
                                _().as('x')
                                .out('functions', 'component')
                                .loop('x'){true}{true}
                                        .copySplit(
                                                _(),
                                                _().in('part_of'),
                                                _().outE('functions', 
'component'),
                                                _().inE('part_of')
                                        )
                                .exhaustMerge.dedup
                        )
                        .exhaustMerge
            .collect()
{noformat}

this might not be a normal usecase. 




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to