GitHub user okram opened a pull request:

    https://github.com/apache/incubator-tinkerpop/pull/312

    TINKERPOP-1281 & TINKERPOP-1282 & TINKERPOP-1299: OLAP chains and traverser 
propagation

    https://issues.apache.org/jira/browse/TINKERPOP-1281
    https://issues.apache.org/jira/browse/TINKERPOP-1282
    https://issues.apache.org/jira/browse/TINKERPOP-1299
    
    @dkuppitz was designing a `VertexProgram` to use with `program()`-step and 
noted that reduction-based traversers were not accessible (only distributed 
traversers were). That is, `g.V().groupCount().by(label).program(…)` didn't 
provide the Map, though `g.V().out().program(…)` did provide the vertices. 
This problem has been rectified and moreover, a collection of helpful methods 
and classes have been provided to make it easier for people writing vertex 
programs to be used in a traversal to access traversers, introspect on the 
traversal, etc. Moreover, a solid, "do it all" test case was provided in 
`ProgramTest` that uses `TestProgram` to do numerous traversal/traverser-based 
operations with assertions throughout. In essence, the semantics of traverser 
propagation are verified by `ProgramTest.TestProgram`. Finally, I added 
`program()`-step to the reference docs trying to explain the intricacies of 
writing your own "traversal-based" vertex program. Its not pretty, but if you 
are 
 willing to get nitty gritty, its there for you.
    
    CHANGELOG
    
    ```
    * Fixed a bug in master-traversal traverser propagation.
    * Added useful methods for custom `VertexPrograms` to be used with 
`program()`-step.
    * Increased the test coverage around traverser propagation within a 
multi-job OLAP traversal.
    ```
    
    Docs built and published:
       http://tinkerpop.apache.org/docs/3.2.1-SNAPSHOT/reference/#program-step
    
    `mvn clean install` passed.
    
    Integration tests passing 
      - Giraph is still running, though ProgramTest executed in isolation 
passed.
    
    VOTE +1.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/apache/incubator-tinkerpop TINKERPOP-1281

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/incubator-tinkerpop/pull/312.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #312
    
----
commit 39d709d39e900ad2d8246d519ca13640c70610b1
Author: Marko A. Rodriguez <[email protected]>
Date:   2016-05-11T23:04:58Z

    Wrote the most insane test in ProgramTest. It verifies that both master- 
and worker-haltedTraversers are accessible within a program(), that 
program().as(x) works, that sideEffects and labeled paths are accessible across 
OLAP jobs that include program(). Basically, epic. Had to work on 
TraversalVertexProgram a bunch as master-haltedTraversers were not being 
handled as expected in multi-OLAP chain. Lots of good helper methods added to 
make it easy for people writing VertexPrograms for use in program() to leverage 
the traversal. Its still pretty painful as you have to be really aware of how 
OLAP traversals work… I don't think I can make it much simpler.

commit c929fd4d53c705de840c53f48a7e4ae485217d86
Author: Marko A. Rodriguez <[email protected]>
Date:   2016-05-12T13:14:05Z

    Merge branch 'master' into TINKERPOP-1281

commit 6acbf96a79e64cd5a69635d4de3c959e2c0bf425
Author: Marko A. Rodriguez <[email protected]>
Date:   2016-05-12T16:45:55Z

    wow. was in a massive hole. Anywho, lots of good stuff here. PR will have 
all the details.

commit 282177bb01cd9983112c7d610f9f34325c983074
Author: Marko A. Rodriguez <[email protected]>
Date:   2016-05-12T16:48:19Z

    undid comment out section in ProcessComputerSuite.

commit 01058f44e029eda04a228e059e5a4b632c507363
Author: Marko A. Rodriguez <[email protected]>
Date:   2016-05-12T19:06:36Z

    dar. in my frantic 'get me back to where I was'-state, I forgot to add back 
this line. ... yes, its been hell this morning.

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to