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.
---