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 2017/07/21 04:34:00 UTC

[jira] [Commented] (S2GRAPH-151) Provide global index.

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

DOYUNG YOON commented on S2GRAPH-151:
-------------------------------------

I think this issue can be broken down to few tasks as follow.

1. Change Management#createIndex to accept IndexType(either Mixed or Composite).

2. Implement IndexProvider(for Mixed IndexType) class that accept configuration and provide followings.
{noformat}
  - def fetchEdgeIds(queryString: String): java.util.List[EdgeId]
  - def fetchVertexIds(queryString: String): java.util.List[VertexId]
  - def mutateVertices(vertices: Seq[S2Vertex]): Seq[Boolean]
	- def mutateEdges(edges: Seq[S2Edge]): Seq[Boolean]
	- def shutdown(): Unit
{noformat}

3. Refactor VertexSerializable/VertexDeserializable so Composite Index Type on vertex can be stored in HBase directly. We don't have index on Vertex for now.

4. Refactor S2Query to specify index on getVertices. Current implementation is only accpet VertexId.

I am going to proceed as above if there is no objection.




> Provide global index.
> ---------------------
>
>                 Key: S2GRAPH-151
>                 URL: https://issues.apache.org/jira/browse/S2GRAPH-151
>             Project: S2Graph
>          Issue Type: New Feature
>    Affects Versions: 0.2.0
>            Reporter: DOYUNG YOON
>            Assignee: DOYUNG YOON
>             Fix For: 0.2.0
>
>   Original Estimate: 240h
>  Remaining Estimate: 240h
>
> Currently, there is no way in s2graph to start traversal if vertexIds, edgeIds are unknown.
> However, S2Graph need to support following types of traversal, which seems highly used by many.
> {noformat}
> g.V().has("product_name", "abc", "created_at", "2017-07-10")
> {noformat}
> Current master implement this by full scanning storage and filter using HasStep, which is very inefficient.
> I would be great if S2Graph provide global index like other graph databases such as Titan does, I mean translate above full scan traversal into index lookup on index provider, then get vertexIds/edgeIds to start traversal.
> As we discussed on mailing list(http://markmail.org/message/euqca6x2fee5u723), This issue will try implement global index provider using search engine, most likely local embedded lucene for easy of development.
> Reference: http://s3.thinkaurelius.com/docs/titan/1.0.0/indexes.html



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