How about changing the second 'by' to a more indicative name (could
'select' work?)?

That way we could improve on the name (which always had me confused), and
leave the second+third 'by's as an indication to use the old
implementation...

On יום ד׳, 7 באוק׳ 2015 at 0:18 Marko Rodriguez <[email protected]>
wrote:

> Hello everyone (and the NSA -- Kuppitz did it),
>
> This is regarding this ticket:
>         https://issues.apache.org/jira/browse/TINKERPOP3-866
>
> In group_step_2/ branch we have a new implementation of GroupStep. Here is
> an example:
>
> g.V.group.by('name').by(outE.weight).by(max()) // old way
> g.V.group.by('name').by(outE.weight.max()) // new way
>
> What is the difference, there is only two by()-modulators that can be
> passed to group(): keyTraversal and valueTraversal. What happened to
> reduceTraversal? Well, valueTraversal is that. If you want to reduce on
> your values, well, add a reducing barrier step -- e.g. max, min, sum,
> count, fold, mean, etc. In the old way, we would put all your values into a
> Collection<V> and then when the step was complete, we would feed those into
> the reduceTraversal. Now -- we can dynamically reduce on the fly. This will
> greatly improve speed and memory usage as we don't have to create a big old
> Collection<V> and instead, can reduce as new traversers are fed into
> valueTraversal.
>
> So this is great and no would object. What sucks is that this is NOT
> backwards compatible. What Stephen and I came up with (in the ticket) is to
> make:
>
>
> https://github.com/apache/incubator-tinkerpop/blob/group_step_2/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java#L637-L639
>
> This new step groupV3d0() is a deprecated step that is what the "old way"
> was. Note the naming convention that Stephen used for Kryo is now used here
> -- V3d0 (version 3<dot>0). Thus, for users moving forward, they will have
> to do a "replace all" on their queries and rename "group()" to
> "groupV3d0()". Then slowly, over time, convert their traversal to use the
> new group() step and its respective semantics.
>
> Note that in the past we have been able to do backwards compatibility via
> having the new step (e.g. AddVertexStep) simulate the behavior of the old
> step and have respective @Deprecates in there to say that particular
> GraphTraversal methods will go away. However, in this situation, the best
> we can do is groupV3d0().
>
> Anywho. That is that. If people have any better ideas on how to solve this
> backwards compatibility issue, I'm all (deaf) ears.
>
> Thanks,
> Marko.
>
> http://markorodriguez.com
>
>

Reply via email to