This is an automated email from the ASF dual-hosted git repository. okram pushed a change to branch tp4 in repository https://gitbox.apache.org/repos/asf/tinkerpop.git.
from 58e761d Really cleaned up Beam. We have a TopologyUtil that translates a Compilation into a Beam topology. We also have branch support generalized so union, choose, etc. just work without any special consideration in Beam. I need to get repeat() to be general -- but that is tricky given its recrussive nature. For now, a special repeat()-case exists. new bfa48cb BranchFuncions are no longer Java functions. Given that the implementation of branching is heavily dependent on processing engine semantics, BranchFunctions simply expose a branch selector and a Map of selector/traversal pairs. It is up to the processor provider to use that information to construct a branching topology. For Pipes, its pull-based. For Beam, its push-based. new 955a946 added BarrierFunction which is a generalization of Reduce. This was mentioned in the Stream Ring Theory paper and I decided to flush it out so we can do barrier() in this way. Going to have to generalize the concept of a Reducer. new fb4930b playing around with Reducers and Barriers. Trying to merge them into one. Had it working for Pipes, but Beam requires that a Combiner return a single object -- not an iterator of objects. Still playing. The 41 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../org/apache/tinkerpop/language/Symbols.java | 10 ++- .../org/apache/tinkerpop/language/Traversal.java | 15 +++++ .../tinkerpop/machine/bytecode/Bytecode.java | 6 -- .../tinkerpop/machine/bytecode/BytecodeUtil.java | 8 +++ .../machine/functions/AbstractFunction.java | 2 +- .../{ReduceFunction.java => BarrierFunction.java} | 8 +-- .../machine/functions/BranchFunction.java | 5 +- .../CountReduce.java => barrier/StallBarrier.java} | 27 +++++--- .../machine/functions/branch/ChooseBranch.java | 21 ++----- .../machine/functions/branch/RepeatBranch.java | 19 +----- .../machine/functions/branch/UnionBranch.java | 15 +---- .../machine/functions/filter/FilterFilter.java | 4 +- .../machine/functions/filter/HasKeyFilter.java | 2 +- .../functions/filter/HasKeyValueFilter.java | 2 +- .../machine/functions/filter/IdentityFilter.java | 2 +- .../machine/functions/filter/IsFilter.java | 2 +- .../machine/functions/flatmap/UnfoldFlatMap.java | 2 +- .../machine/functions/initial/InjectInitial.java | 2 +- .../tinkerpop/machine/functions/map/IncrMap.java | 2 +- .../tinkerpop/machine/functions/map/MapMap.java | 2 +- .../tinkerpop/machine/functions/map/PathMap.java | 2 +- .../machine/functions/reduce/CountReduce.java | 2 +- .../machine/functions/reduce/GroupCountReduce.java | 2 +- .../machine/functions/reduce/SumReduce.java | 2 +- .../machine/traversers/CompleteTraverser.java | 5 ++ .../tinkerpop/machine/traversers/Traverser.java | 4 -- .../org/apache/tinkerpop/machine/beam/Beam.java | 10 ++- .../apache/tinkerpop/machine/beam/BranchFn.java | 11 ++-- .../machine/beam/util/PrimitiveVisitor.java | 72 ++++++++++++++++++++++ .../apache/tinkerpop/machine/beam/BeamTest.java | 5 ++ .../tinkerpop/machine/pipes/BarrierStep.java | 68 ++++++++++++++++++++ .../apache/tinkerpop/machine/pipes/BranchStep.java | 48 ++++++++++----- .../org/apache/tinkerpop/machine/pipes/Pipes.java | 14 +++-- .../apache/tinkerpop/machine/pipes/ReduceStep.java | 12 ++-- .../apache/tinkerpop/machine/pipes/RepeatStep.java | 70 +++++++++++++++++++++ .../pipes/util/{Reducer.java => Barrier.java} | 2 +- .../{BasicReducer.java => InMemoryBarrier.java} | 4 +- .../machine/pipes/util/InMemoryReducer.java} | 32 ++++------ .../tinkerpop/machine/pipes/util/Reducer.java | 10 ++- .../apache/tinkerpop/machine/pipes/PipesTest.java | 13 +++- 40 files changed, 390 insertions(+), 154 deletions(-) copy java/core/src/main/java/org/apache/tinkerpop/machine/functions/{ReduceFunction.java => BarrierFunction.java} (81%) copy java/core/src/main/java/org/apache/tinkerpop/machine/functions/{reduce/CountReduce.java => barrier/StallBarrier.java} (56%) create mode 100644 java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/util/PrimitiveVisitor.java create mode 100644 java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/BarrierStep.java create mode 100644 java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/RepeatStep.java copy java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/util/{Reducer.java => Barrier.java} (95%) rename java/machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/util/{BasicReducer.java => InMemoryBarrier.java} (91%) copy java/{core/src/main/java/org/apache/tinkerpop/machine/processor/EmptyProcessor.java => machine/pipes/src/main/java/org/apache/tinkerpop/machine/pipes/util/InMemoryReducer.java} (60%)