I guess there is no objection on my suggestion, so I am going to try list
up issues in more detail while preparing 0.2.0 release on late this month.

Before list up above issues as task on jira, I want to discuss index in
more details.

Following is my understanding on index to support tinkerpop fully and
efficiently
- reference: http://s3.thinkaurelius.com/docs/titan/1.0.0/indexes.html

1. graph index: traversal from a list of vertices or edges that are
identified by their properties

2. vertex-centric index: traversal through vertices with many incident
edges.

I believe s2graph has vertex-centric index already, but it does not have
graph index layer so full text predicate, and range search features in
tinkerpop runs very inefficiently.

For example, following traversal run full scan.

- g.V().has('name', 'hercules')
- g.E().has('reason', textContains('loves'))

To support full tinkerpop features efficiently, we need to add graph index
layer and I want to discuss how we are going to achieve this. like
suggested here(http://markmail.org/message/2vn2bwrwh5zbeie4) using external
search engine totally make sense to me.

I suggest to design index management interface first, since graph index has
never exist in S2Graph previously. then decision about index storage
backend, implementation can be discussed in more detail(the other way
around could also possible).

Following is how user create index in s2graph currently.

Management.createServiceColumn(
serviceName = serviceName, columnName = "person", columnType = "integer",
    props = Seq(
    Prop("name", "-", "string"),
    Prop("age", "0", "integer"),
    Prop("location", "-", "string")
    )
)

management.createLabel(
label = "bought",
    srcServiceName = serviceName, srcColumnName = "person", srcColumnType =
"integer",
    tgtServiceName = serviceName, tgtColumnName = "product", tgtColumnType
= "integer", idDirected = true,
    serviceName = serviceName,
    indices = Seq(
    Index("PK", Seq("amount", "created_at")
    ),
    props = Seq(
    Prop("amount", "0.0", "double"),
    Prop("created_at", "2000-01-01", "string")
    ),
    consistencyLevel = "strong"
)

How we going to let user to create graph-index? Should we add extra
parameters on existing methods, or provide separate methods?


On Mon, Jul 3, 2017 at 10:11 PM DO YUNG YOON <[email protected]> wrote:

> Hi folks.
>
> It's been for a while we released our first release.
> It seems that needs for implementing tinkerpop interface has been high,
> but we have not finished it. I have been working on
> https://issues.apache.org/jira/browse/S2GRAPH-136 since April, then
> recently merged it into master.
>
> I think Gremlin-core is tested, but following is what I think we have to
> improve for tinkerpop users to try out s2graph easily.
>
> 1. provide provider optimization, we have none currently.
> 2. full text search predicate is not currently supported(as @echarles
> pointed out)
> 3. provide gremlin plugin
> 4. make sure tinkerpop stack works correctly.
>
> Any help on above issues would be highly appreciated(help on any other
> issue would be also highly appreciated).
>
> By the way, What I want to discuss is the schedule and what will be
> included on our second release.
>
> I suggest to focus on integrate with tinkerpop on our second release. It
> would be best if we can address above issues by this month, but I doubt if
> it is possible.
>
> I am suggesting fix our release date on late this month, then focus on
> above issues with high priority. if we can address them all, great, but if
> we can't, then release with version as much as we can deliver in time, then
> move them on next next release so on.
>
> Want to hear what other folks think about focus and schedule on our second
> release, and happy to volunteer as release manager for this time if there
> are no other volunteer.
>
> If there are other issues which anyone think to be included on next
> release, please list them on this thread.
>
> Thanks
>
> DO YUNG YOON
>
>

Reply via email to