[ 
https://issues.apache.org/jira/browse/TINKERPOP-1035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15290951#comment-15290951
 ] 

ASF GitHub Bot commented on TINKERPOP-1035:
-------------------------------------------

GitHub user okram opened a pull request:

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

    TINKERPOP-1035: HALTED_TRAVERSERS hold wrong information

    https://issues.apache.org/jira/browse/TINKERPOP-1305
    
    @dkuppitz found a severe bug in 3.2.0 in OLAP traversal chains. 
Interestingly enough, all the test cases we had didn't touch this problem (even 
though they did tangentially, but didn't test particular expectations). As 
such, two new tests have been added to `pageRank()` and `peerPressure()` which 
demonstrate the problem has been rectified.
    
    CHANGELOG
    
    ```
    * Fixed a severe bug around halted traversers in a multi-job OLAP traversal 
chain.
    * Ensure a separation of `GraphComputer` and `VertexProgram` configurations 
in `SparkGraphComputer` and `GiraphGraphComputer`.
    * `PeerPressureVertexProgram` now supports dynamic initial vote strength 
calculations.
    * Added `EmptyMemory` for ease of use when no memory exists.
    * Updated `VertexComputing.generateProgram()` API to include `Memory` 
(*breaking*).
    ```
    
    UPGRADE
    
    ```
    VertexComputing API Change
    +++++++++++++++++++++++
    
    The `VertexComputing` API is used by steps that wrap a `VertexProgram`. 
There is a method called `VertexComputing.generateProgram()` that has changed 
which now takes a second argument of `Memory`. To  upgrade, simply fix the 
method signature of your `VertexComputing` implementations. The `Memory` 
argument can be safely ignored to effect the exact same semantics as prior. 
However, now previous OLAP job `Memory` can be leveraged when constructing the 
next `VertexProgram` in an OLAP traversal chain.
    ```
    
    `mvn clean install` PASSED, integration tests PASSED, and docs built GOOD.
    
    ```
    [INFO] Apache TinkerPop .................................. SUCCESS [4.477s]
    [INFO] Apache TinkerPop :: Gremlin Shaded ................ SUCCESS [2.256s]
    [INFO] Apache TinkerPop :: Gremlin Core .................. SUCCESS [38.899s]
    [INFO] Apache TinkerPop :: Gremlin Test .................. SUCCESS [11.399s]
    [INFO] Apache TinkerPop :: Gremlin Groovy ................ SUCCESS [38.721s]
    [INFO] Apache TinkerPop :: Gremlin Groovy Test ........... SUCCESS [6.730s]
    [INFO] Apache TinkerPop :: TinkerGraph Gremlin ........... SUCCESS 
[3:15.097s]
    [INFO] Apache TinkerPop :: Gremlin Benchmark ............. SUCCESS [5.194s]
    [INFO] Apache TinkerPop :: Hadoop Gremlin ................ SUCCESS 
[10:57.415s]
    [INFO] Apache TinkerPop :: Spark Gremlin ................. SUCCESS 
[6:28.472s]
    [INFO] Apache TinkerPop :: Giraph Gremlin ................ SUCCESS 
[2:47:11.903s]
    [INFO] Apache TinkerPop :: Neo4j Gremlin ................. SUCCESS 
[1:08:16.166s]
    [INFO] Apache TinkerPop :: Gremlin Driver ................ SUCCESS [8.704s]
    [INFO] Apache TinkerPop :: Gremlin Server ................ SUCCESS 
[13:13.317s]
    [INFO] Apache TinkerPop :: Gremlin Console ............... SUCCESS 
[1:23.504s]
    [INFO] Apache TinkerPop :: Gremlin Archetype ............. SUCCESS [0.134s]
    [INFO] Apache TinkerPop :: Archetype - TinkerGraph ....... SUCCESS [7.257s]
    [INFO] Apache TinkerPop :: Archetype - Server ............ SUCCESS [11.883s]
    [INFO] 
------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] 
------------------------------------------------------------------------
    [INFO] Total time: 4:33:02.004s
    [INFO] Finished at: Thu May 19 00:09:24 MDT 2016
    [INFO] Final Memory: 99M/712M
    [INFO] 
------------------------------------------------------------------------
    ```
    
    VOTE +1.

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

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

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

    https://github.com/apache/incubator-tinkerpop/pull/316.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 #316
    
----
commit 4ee302899da37a0ad0ebab6bc4954ed39b69d6d9
Author: Marko A. Rodriguez <okramma...@gmail.com>
Date:   2016-05-18T22:15:40Z

    fixed HALTED_TRAVERSER bug where traversers were not at their 'resting 
location'. This only shows up in multi-OLAP job chains. HALTED_TRAVERESERS 
(master travesal) are now propagated via Configuration and NOT via sideEffects. 
This is more elegant and there are now helper methods in TraversalVertexProgram 
to make getting master halted traversers easy. Updated the-travesal.asciidoc to 
reflect how to use ProgramStep with it. Had to change a method signature in 
VertexComputing to account for this... its slight (breaking), but no one is 
using this right now, I'm sure of it. And if they are, the chaneg is trivial, 
just add a new argument to a method signature and ignore it to make it be like 
how it is in 3.2.0. ImmutablePath.TailPath was not serializable and this caused 
issues for HALTED_TRAVERSERS as well. Everything else fixed up.

commit 07e12995ae6bed0a3b1da3942bc54371d94a66a9
Author: Marko A. Rodriguez <okramma...@gmail.com>
Date:   2016-05-18T23:02:22Z

    TraverserExecutor is smart to not do another iteration if the traversers 
will simply be returned to the master traversals as output. Updated the 
PageRankTest with a better test.

commit a6aacdc51eba895e04f9d75d64343470fbaca5c5
Author: Marko A. Rodriguez <okramma...@gmail.com>
Date:   2016-05-18T23:11:26Z

    minor tweaks to TraverserVertexProgram to make it more efficient.

commit 7d29ef32a42b143f9654457a46ab64a57446ef14
Author: Marko A. Rodriguez <okramma...@gmail.com>
Date:   2016-05-18T23:12:40Z

    minor tweaks to TraverserVertexProgram to make it more efficient.

commit 6107ff95e47129d6266a68410c01c17b04af95cf
Author: Marko A. Rodriguez <okramma...@gmail.com>
Date:   2016-05-19T01:24:57Z

    made a PageRank test a bit more robust. running full integration over night.

commit b100f033e02ee5647dd31b2d556a1dcadac29818
Author: Marko A. Rodriguez <okramma...@gmail.com>
Date:   2016-05-19T01:36:18Z

    added EmptyMemory and its used as the memory for the first 
generateProgram() of an OLAP chain. Much better than Optional(Memory).

commit 5bcf0b01c7bfc77e9eea8fdb7b2c4c54a4fc0000
Author: Marko A. Rodriguez <okramma...@gmail.com>
Date:   2016-05-19T11:23:36Z

    added traversal-based vote strength test to PeerPressureTest. Cleaned up 
internal classes of TraversalVertexProgram a bit for better organization. 
Generalized Phase enum so it can be used by other computer-based classes. added 
comments to TraveralVertexProgram.

----


> Better Consistency in Gremlin Server Transaction Management 
> ------------------------------------------------------------
>
>                 Key: TINKERPOP-1035
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1035
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: server
>    Affects Versions: 3.1.0-incubating
>            Reporter: stephen mallette
>            Assignee: stephen mallette
>             Fix For: 3.1.1-incubating
>
>
> For sessionless requests to gremlin server, transactions management needs to 
> be tightened such that serialization occurs in the same thread of execution 
> as iteration.  This should ensure proper operation across different graphs 
> providers (as some are more strict that others when it comes to 
> transactions).  It will also ensure that "extra" transactions are not 
> required to gather data for serialization purposes which should make requests 
> more efficient.  Also, transaction management needs to better ensure that the 
> commit of a successful request is complete before the client receives the 
> final streamed message (seems like it was possible for a race condition there)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to