[ 
https://issues.apache.org/jira/browse/S2GRAPH-72?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15691867#comment-15691867
 ] 

DOYUNG YOON commented on S2GRAPH-72:
------------------------------------

Few updates on this issue.

Before ApacheCon Big Data(Sevile), I thought that providing layer for 
Tinkerpop3 atop of existing S2Graph's core library would be sufficient. Then 
after having more discussion at ApacheCon, I was wondering why not change 
S2Graph core library to implement Tinkerpop3 directly. 

I think layer approach would be fine to get started(implemented on 
[S2GRAPH-72-steamshon|https://github.com/SteamShon/incubator-s2graph/tree/S2GRAPH-72-steamshon])
 , but once user get serious about adoption, then performance is critical issue.

Currently, It is inevitable to copy data inside S2Graph's core Edge to tp3's 
Edge after deserialize bytes from storage which will produce lots of overhead. 
Just imagine the number of edge of a single traversal reach 1000, assuming 
there are 5 properties on each edge, then we are copying 1000 scala's immutable 
map which has size 5. even though an individual operation for copying hash map 
is negligible, calling this negligible operation too many times can be 
problematic.

To make s2core's Vertex/Edge/Graph to implement tp3's interface directly, we 
need to address few issues.

# There are many codes that access properties(hash map in Edge), which need to 
be avoided so changing one part of code does not affect to other part of code.
# {{Edge.propsWithTs}} data type should be changed into mutable to support 
setter interface exist in tp3.
# Add actual implementation for interface from tp3.

1, 2 need to be addressed first, so other folks who are interested can join the 
discussion on 3, which is how we actually map S2Graph's core into Tp3. 

I suggest to create separate issues for 1,2,3 and track them under this issue.

> Support Apache TinkerPop and Gremlin
> ------------------------------------
>
>                 Key: S2GRAPH-72
>                 URL: https://issues.apache.org/jira/browse/S2GRAPH-72
>             Project: S2Graph
>          Issue Type: Improvement
>            Reporter: Marko A. Rodriguez
>            Assignee: DOYUNG YOON
>
> I posted a similar ticket when GitHub issues was the issue tracker for this 
> project. In short, it would be great if S2Graph leveraged Apache TInkerPop 
> (http://tinkerpop.apache.org). You can read the benefits here:
> http://tinkerpop.apache.org/providers.html
> One neat thing is that {{SparkGraphComputer}} would work over S2Graph and it 
> would immediately get OLAP support.
> You can read a bit about Gremlin here.
> http://tinkerpop.apache.org/gremlin.html
> S2Graph would create a set of {{TraversalStrategies}} to make use of S2Graph 
> specific optimizations such as global indices, local indices, multi-query 
> (breadth query), etc. 
> If you are interested in this path and have any questions, the Apache 
> TinkerPop team is more than happy to help.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to