[ 
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)

Reply via email to