The message serializer classes for Gremlin Server already have a notion
like this, so the pattern has already been explored a bit in that context
within the TinkerPop code base.

https://github.com/apache/incubator-tinkerpop/blob/809da22648067d178b114d9afbdeb5ffbf44ed9e/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV1d0.java

Note that it uses V1d0 as a naming pattern, so to apply that to
GraphTraversal, you'd end up with GraphTraversalV3d0 (the assumption here
is that we would see breaks in the patch release so no need for an
additional "d0").

What are the implications for tests if we look to support this backward
compatibility (which, on the surface sounds good to me)?



On Mon, Oct 5, 2015 at 10:45 AM, Marko Rodriguez <[email protected]>
wrote:

> Hello R-Pop-Tik-e,
>
> Matt Frantz and I have been going back and forth on the following ticket:
>
>         https://issues.apache.org/jira/browse/TINKERPOP3-866
>
> This idea was spawned because Kuppitz and I were trying to figure out if
> we could get rid of GroupCountStep and replace it with a parameterized
> version of GroupStep.
>
> A short review of the argument is provided below (MENTORS: the full
> argument is in JIRA in the URL above (which also went to dev@ as JIRA
> comments/tickets email dev@)).
>         1. GroupStep (3.0.1) uses a collection prior to reduction.
>         2. This is inefficient as we waste memory holding data in a
> collection.
>         3. This gets especially nasty in OLAP when you can get some
> massive data growth.
>         4. Lets make GroupStep use lazy evaluators.
>         5. Done. Damn -- its not backwards compatible.
>         6. More sucky, we can't just have a @Deprecated method.
>
> Matt had a nice idea (MENTORS: again this idea is in JIRA). What about
> making GraphTraversal30 be a thing that always exists for each version.
> Thus, people who can't so easily upgrade to can still stick with
> GraphTraversal30.
>
> The question becomes, how is this expressed (MENTORS: This is lightly in
> JIRA but I bring it up here in more depth):
>
> g = graph.traversal(GraphTraversal30.build().create())
>                 OR
>
> gremlin.graph.traversal.default=org.apache.tinkerpop.process.traversal.dsl.graph30.GraphTraversal30
>
> Please reply to JIRA with your thoughts on how we can accomplish this
> (MENTORS: people will reply to JIRA with their thoughts, however,
> fortunately all JIRA comments/tickets go to dev@).
>                 https://issues.apache.org/jira/browse/TINKERPOP3-866
>
> Thank you very much for your time,
> Marko.
>
> http://markorodriguez.com
>
>

Reply via email to