You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@s2graph.apache.org by "DOYUNG YOON (JIRA)" <ji...@apache.org> on 2016/11/24 01:21:58 UTC

[jira] [Commented] (S2GRAPH-72) Support Apache TinkerPop and Gremlin

    [ 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)