[
https://issues.apache.org/jira/browse/TINKERPOP-1248?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15829797#comment-15829797
]
ASF GitHub Bot commented on TINKERPOP-1248:
-------------------------------------------
Github user okram commented on the issue:
https://github.com/apache/tinkerpop/pull/538
So `MultiComparator` is internal to a `Traversal`. The way in which
GraphSON serializes traversals is via their Bytecode. Thus, when the bytecode
gets recompiled on the deserializing end, the `MultiComparator` is recreated.
The reason this is needed in Gryo is because we use Gryo as the binary format
internal to Java-based systems. Giraph and Spark register the `MultiComparator`
in their Aggregator framework and Gryo is the serializer for it.
Regarding `ProjectedTraverser`. Again, a concept internal to Gremlin-Java
VM. Note that `Traverser` serialization in GraphSON is not complete regardless
(only what is required for practical communication):
```java
@Override
public void serialize(final Traverser traverserInstance, final
JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
throws IOException {
jsonGenerator.writeStartObject();
jsonGenerator.writeObjectField(GraphSONTokens.BULK,
traverserInstance.bulk());
jsonGenerator.writeObjectField(GraphSONTokens.VALUE,
traverserInstance.get());
jsonGenerator.writeEndObject();
}
```
`ProjectedTraverser` is used by `CollectingBarrierSteps` in OLAP during
reductions. For Gremlin-Java VM applications, this is all Gryo serialization
stuff with aggregator frameworks.
Finally, regarding testing --- yes, I swapped out `ChainedComparator` for
`MultiComparator + ProjectedTraverser` and thus, its tested.
> OrderGlobalStep should use local star graph to compute sorts, prior to
> reduction.
> ---------------------------------------------------------------------------------
>
> Key: TINKERPOP-1248
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1248
> Project: TinkerPop
> Issue Type: Improvement
> Components: process
> Affects Versions: 3.2.0-incubating
> Reporter: Marko A. Rodriguez
> Assignee: Marko A. Rodriguez
>
> We can get local star graph expressivity from `OrderGlobalStep` in OLAP if we
> emit the object + its `by()`-modulated values. It will yield more data in the
> order, but it will reduce the CPU time as we don't have to call `by()` on
> each order check.
> This ticket will be a bit involved as it will depart from
> `CollectingBarrierStep` semantics and thus, complicate `OrderGlobalSteps`
> implementation...
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)