You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2017/10/14 16:09:48 UTC

svn commit: r1812191 [2/24] - in /tinkerpop/site: docs/3.2.7-SNAPSHOT/ docs/3.2.7-SNAPSHOT/dev/developer/ docs/3.2.7-SNAPSHOT/dev/provider/ docs/3.2.7-SNAPSHOT/images/ docs/3.2.7-SNAPSHOT/recipes/ docs/3.2.7-SNAPSHOT/reference/ docs/3.2.7-SNAPSHOT/stat...

Modified: tinkerpop/site/docs/3.2.7-SNAPSHOT/reference/index.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.2.7-SNAPSHOT/reference/index.html?rev=1812191&r1=1812190&r2=1812191&view=diff
==============================================================================
--- tinkerpop/site/docs/3.2.7-SNAPSHOT/reference/index.html (original)
+++ tinkerpop/site/docs/3.2.7-SNAPSHOT/reference/index.html Sat Oct 14 16:09:46 2017
@@ -2019,11 +2019,11 @@ system providers for two purposes:</p>
 gremlin&gt; graph.features()
 ==&gt;FEATURES
 &gt; GraphFeatures
-&gt;-- <span class="key">Computer</span>: <span class="predefined-constant">true</span>
-&gt;-- <span class="key">Transactions</span>: <span class="predefined-constant">false</span>
 &gt;-- <span class="key">Persistence</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">ConcurrentAccess</span>: <span class="predefined-constant">false</span>
 &gt;-- <span class="key">ThreadedTransactions</span>: <span class="predefined-constant">false</span>
+&gt;-- <span class="key">Transactions</span>: <span class="predefined-constant">false</span>
+&gt;-- <span class="key">Computer</span>: <span class="predefined-constant">true</span>
 &gt; VariableFeatures
 &gt;-- <span class="key">Variables</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">BooleanValues</span>: <span class="predefined-constant">true</span>
@@ -2046,10 +2046,11 @@ gremlin&gt; graph.features()
 &gt;-- <span class="key">StringArrayValues</span>: <span class="predefined-constant">true</span>
 &gt; VertexFeatures
 &gt;-- <span class="key">MetaProperties</span>: <span class="predefined-constant">true</span>
+&gt;-- <span class="key">AddVertices</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">RemoveVertices</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">DuplicateMultiProperties</span>: <span class="predefined-constant">true</span>
-&gt;-- <span class="key">AddVertices</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">MultiProperties</span>: <span class="predefined-constant">true</span>
+&gt;-- <span class="key">UserSuppliedIds</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">AddProperty</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">RemoveProperty</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">NumericIds</span>: <span class="predefined-constant">true</span>
@@ -2057,8 +2058,8 @@ gremlin&gt; graph.features()
 &gt;-- <span class="key">UuidIds</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">CustomIds</span>: <span class="predefined-constant">false</span>
 &gt;-- <span class="key">AnyIds</span>: <span class="predefined-constant">true</span>
-&gt;-- <span class="key">UserSuppliedIds</span>: <span class="predefined-constant">true</span>
 &gt; VertexPropertyFeatures
+&gt;-- <span class="key">UserSuppliedIds</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">AddProperty</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">RemoveProperty</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">NumericIds</span>: <span class="predefined-constant">true</span>
@@ -2066,7 +2067,6 @@ gremlin&gt; graph.features()
 &gt;-- <span class="key">UuidIds</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">CustomIds</span>: <span class="predefined-constant">false</span>
 &gt;-- <span class="key">AnyIds</span>: <span class="predefined-constant">true</span>
-&gt;-- <span class="key">UserSuppliedIds</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="predefined-type">Properties</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">BooleanValues</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">ByteValues</span>: <span class="predefined-constant">true</span>
@@ -2089,6 +2089,7 @@ gremlin&gt; graph.features()
 &gt; EdgeFeatures
 &gt;-- <span class="key">RemoveEdges</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">AddEdges</span>: <span class="predefined-constant">true</span>
+&gt;-- <span class="key">UserSuppliedIds</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">AddProperty</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">RemoveProperty</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">NumericIds</span>: <span class="predefined-constant">true</span>
@@ -2096,7 +2097,6 @@ gremlin&gt; graph.features()
 &gt;-- <span class="key">UuidIds</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">CustomIds</span>: <span class="predefined-constant">false</span>
 &gt;-- <span class="key">AnyIds</span>: <span class="predefined-constant">true</span>
-&gt;-- <span class="key">UserSuppliedIds</span>: <span class="predefined-constant">true</span>
 &gt; EdgePropertyFeatures
 &gt;-- <span class="predefined-type">Properties</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">BooleanValues</span>: <span class="predefined-constant">true</span>
@@ -2997,7 +2997,7 @@ gremlin&gt; g = graph.traversal()
 gremlin&gt; f = <span class="keyword">new</span> <span class="predefined-type">ByteArrayOutputStream</span>()
 ==&gt;
 gremlin&gt; mapper = graph.io(graphson()).mapper().embedTypes(<span class="predefined-constant">true</span>).create()
-==&gt;org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONMapper<span class="error">@</span><span class="float">775f</span><span class="float">15f</span>d
+==&gt;org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONMapper<span class="error">@</span><span class="integer">1</span>b4a3a1
 gremlin&gt; graph.io(graphson()).writer().mapper(mapper).create().writeVertex(f, g.V(<span class="integer">1</span>).next(), BOTH)
 gremlin&gt; f.close()</code></pre>
 </div>
@@ -3187,7 +3187,7 @@ gremlin&gt; g = graph.traversal()
 gremlin&gt; f = <span class="keyword">new</span> <span class="predefined-type">ByteArrayOutputStream</span>()
 ==&gt;
 gremlin&gt; mapper = graph.io(graphson()).mapper().version(GraphSONVersion.V2_0).create()
-==&gt;org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONMapper<span class="error">@</span><span class="integer">4</span>c030fe1
+==&gt;org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONMapper<span class="error">@</span><span class="float">6f</span><span class="integer">8</span>ac8d5
 gremlin&gt; graph.io(graphson()).writer().mapper(mapper).create().writeVertex(f, g.V(<span class="integer">1</span>).next(), BOTH)
 gremlin&gt; f.close()</code></pre>
 </div>
@@ -4201,13 +4201,13 @@ gremlin&gt; graph.io(graphml()).readGrap
 gremlin&gt; g = graph.traversal().withoutStrategies(LazyBarrierStrategy) <span class="invisible">//</span><b class="conum">1</b><span class="invisible">\</span>
 ==&gt;graphtraversalsource[tinkergraph[<span class="key">vertices</span>:<span class="integer">808</span> <span class="key">edges</span>:<span class="integer">8049</span>], standard]
 gremlin&gt; clockWithResult(<span class="integer">1</span>){g.V().both().both().both().count().next()} <span class="invisible">//</span><b class="conum">2</b><span class="invisible">\</span>
-==&gt;<span class="float">8982.043007999999</span>
+==&gt;<span class="float">10507.029269999999</span>
 ==&gt;<span class="integer">126653966</span>
 gremlin&gt; clockWithResult(<span class="integer">1</span>){g.V().repeat(both()).times(<span class="integer">3</span>).count().next()} <span class="invisible">//</span><b class="conum">3</b><span class="invisible">\</span>
-==&gt;<span class="float">23.798424999999998</span>
+==&gt;<span class="float">38.529219</span>
 ==&gt;<span class="integer">126653966</span>
 gremlin&gt; clockWithResult(<span class="integer">1</span>){g.V().both().barrier().both().barrier().both().barrier().count().next()} <span class="invisible">//</span><b class="conum">4</b><span class="invisible">\</span>
-==&gt;<span class="float">15.071359999999999</span>
+==&gt;<span class="float">19.256566</span>
 ==&gt;<span class="integer">126653966</span></code></pre>
 </div>
 </div>
@@ -4244,7 +4244,7 @@ gremlin&gt; graph.io(graphml()).readGrap
 gremlin&gt; g = graph.traversal() <span class="invisible">//</span><b class="conum">1</b><span class="invisible">\</span>
 ==&gt;graphtraversalsource[tinkergraph[<span class="key">vertices</span>:<span class="integer">808</span> <span class="key">edges</span>:<span class="integer">8049</span>], standard]
 gremlin&gt; clockWithResult(<span class="integer">1</span>){g.V().both().both().both().count().next()}
-==&gt;<span class="float">13.663755</span>
+==&gt;<span class="float">22.234265999999998</span>
 ==&gt;<span class="integer">126653966</span>
 gremlin&gt; g.V().both().both().both().count().iterate().toString() <span class="invisible">//</span><b class="conum">2</b><span class="invisible">\</span>
 ==&gt;[TinkerGraphStep(vertex,<span class="type">[]</span>), VertexStep(BOTH,vertex), NoOpBarrierStep(<span class="integer">2500</span>), VertexStep(BOTH,vertex), NoOpBarrierStep(<span class="integer">2500</span>), VertexStep(BOTH,edge), CountGlobalStep]</code></pre>
@@ -4503,10 +4503,9 @@ gremlin&gt; g.V().hasLabel(<span class="
 <div class="listingblock">
 <div class="content">
 <pre class="CodeRay highlight"><code data-lang="groovy">gremlin&gt; g.V().coin(<span class="float">0.5</span>)
+==&gt;v[<span class="integer">1</span>]
 ==&gt;v[<span class="integer">2</span>]
-==&gt;v[<span class="integer">3</span>]
-==&gt;v[<span class="integer">5</span>]
-==&gt;v[<span class="integer">6</span>]
+==&gt;v[<span class="integer">4</span>]
 gremlin&gt; g.V().coin(<span class="float">0.0</span>)
 gremlin&gt; g.V().coin(<span class="float">1.0</span>)
 ==&gt;v[<span class="integer">1</span>]
@@ -4770,8 +4769,8 @@ InlineFilterStrategy         [O]   [Grap
 IncidentToAdjacentStrategy   [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), IdentityStep, EdgeVertexStep(IN), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
 AdjacentToIncidentStrategy   [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), IdentityStep, EdgeVertexStep(IN), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
 RepeatUnrollStrategy         [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), IdentityStep, EdgeVertexStep(IN), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
+PathRetractionStrategy       [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), IdentityStep, EdgeVertexStep(IN), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
 RangeByIsCountStrategy       [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), IdentityStep, EdgeVertexStep(IN), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
-PathRetractionStrategy       [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), IdentityStep, EdgeVertexStep(IN), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
 LazyBarrierStrategy          [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), IdentityStep, EdgeVertexStep(IN), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
 TinkerGraphCountStrategy     [P]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), IdentityStep, EdgeVertexStep(IN), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
 TinkerGraphStepStrategy      [P]   [TinkerGraphStep(vertex,[~label.eq(person)]), VertexStep(OUT,edge), IdentityStep, EdgeVertexStep(IN), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
@@ -6070,13 +6069,13 @@ gremlin&gt; g.V().hasLabel(<span class="
 <pre class="CodeRay highlight"><code data-lang="groovy">gremlin&gt; g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).order().by(shuffle)
 ==&gt;v[<span class="integer">2</span>]
 ==&gt;v[<span class="integer">6</span>]
-==&gt;v[<span class="integer">1</span>]
 ==&gt;v[<span class="integer">4</span>]
+==&gt;v[<span class="integer">1</span>]
 gremlin&gt; g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).order().by(shuffle)
-==&gt;v[<span class="integer">6</span>]
 ==&gt;v[<span class="integer">1</span>]
-==&gt;v[<span class="integer">4</span>]
-==&gt;v[<span class="integer">2</span>]</code></pre>
+==&gt;v[<span class="integer">2</span>]
+==&gt;v[<span class="integer">6</span>]
+==&gt;v[<span class="integer">4</span>]</code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -6153,8 +6152,8 @@ gremlin&gt; g.V().pageRank().by(<span cl
 ==&gt;<span class="float">0.19250000000000003</span>
 ==&gt;<span class="float">0.15000000000000002</span>
 ==&gt;<span class="float">0.15000000000000002</span>
-==&gt;<span class="float">0.4018125</span>
 ==&gt;<span class="float">0.23181250000000003</span>
+==&gt;<span class="float">0.4018125</span>
 gremlin&gt; g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).
            pageRank().
              by(outE(<span class="string"><span class="delimiter">'</span><span class="content">knows</span><span class="delimiter">'</span></span>)).
@@ -6201,16 +6200,16 @@ AdjacentToIncidentStrategy      [O]   [T
                                          alVertexProgramStep([OrderGlobalStep([[value(friendRank), decr]]), PropertyMapStep([name, friendRank],value)],graphfilter[none]), ComputerResultStep]
 RepeatUnrollStrategy            [O]   [TraversalVertexProgramStep([GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)])],graphfilter[none]), PageRankVertexProgramStep([VertexStep(OUT,[knows],edge)],friendRank,<span class="integer">30</span>,graphfilter[none]), Travers
                                          alVertexProgramStep([OrderGlobalStep([[value(friendRank), decr]]), PropertyMapStep([name, friendRank],value)],graphfilter[none]), ComputerResultStep]
-RangeByIsCountStrategy          [O]   [TraversalVertexProgramStep([GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)])],graphfilter[none]), PageRankVertexProgramStep([VertexStep(OUT,[knows],edge)],friendRank,<span class="integer">30</span>,graphfilter[none]), Travers
+OrderLimitStrategy              [O]   [TraversalVertexProgramStep([GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)])],graphfilter[none]), PageRankVertexProgramStep([VertexStep(OUT,[knows],edge)],friendRank,<span class="integer">30</span>,graphfilter[none]), Travers
                                          alVertexProgramStep([OrderGlobalStep([[value(friendRank), decr]]), PropertyMapStep([name, friendRank],value)],graphfilter[none]), ComputerResultStep]
 PathRetractionStrategy          [O]   [TraversalVertexProgramStep([GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)])],graphfilter[none]), PageRankVertexProgramStep([VertexStep(OUT,[knows],edge)],friendRank,<span class="integer">30</span>,graphfilter[none]), Travers
                                          alVertexProgramStep([OrderGlobalStep([[value(friendRank), decr]]), PropertyMapStep([name, friendRank],value)],graphfilter[none]), ComputerResultStep]
+RangeByIsCountStrategy          [O]   [TraversalVertexProgramStep([GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)])],graphfilter[none]), PageRankVertexProgramStep([VertexStep(OUT,[knows],edge)],friendRank,<span class="integer">30</span>,graphfilter[none]), Travers
+                                         alVertexProgramStep([OrderGlobalStep([[value(friendRank), decr]]), PropertyMapStep([name, friendRank],value)],graphfilter[none]), ComputerResultStep]
 LazyBarrierStrategy             [O]   [TraversalVertexProgramStep([GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)])],graphfilter[none]), PageRankVertexProgramStep([VertexStep(OUT,[knows],edge)],friendRank,<span class="integer">30</span>,graphfilter[none]), Travers
                                          alVertexProgramStep([OrderGlobalStep([[value(friendRank), decr]]), PropertyMapStep([name, friendRank],value)],graphfilter[none]), ComputerResultStep]
 MessagePassingReductionStrategy [O]   [TraversalVertexProgramStep([GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)])],graphfilter[none]), PageRankVertexProgramStep([VertexStep(OUT,[knows],edge)],friendRank,<span class="integer">30</span>,graphfilter[none]), Travers
                                          alVertexProgramStep([OrderGlobalStep([[value(friendRank), decr]]), PropertyMapStep([name, friendRank],value)],graphfilter[none]), ComputerResultStep]
-OrderLimitStrategy              [O]   [TraversalVertexProgramStep([GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)])],graphfilter[none]), PageRankVertexProgramStep([VertexStep(OUT,[knows],edge)],friendRank,<span class="integer">30</span>,graphfilter[none]), Travers
-                                         alVertexProgramStep([OrderGlobalStep([[value(friendRank), decr]]), PropertyMapStep([name, friendRank],value)],graphfilter[none]), ComputerResultStep]
 TinkerGraphCountStrategy        [P]   [TraversalVertexProgramStep([GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)])],graphfilter[none]), PageRankVertexProgramStep([VertexStep(OUT,[knows],edge)],friendRank,<span class="integer">30</span>,graphfilter[none]), Travers
                                          alVertexProgramStep([OrderGlobalStep([[value(friendRank), decr]]), PropertyMapStep([name, friendRank],value)],graphfilter[none]), ComputerResultStep]
 TinkerGraphStepStrategy         [P]   [TraversalVertexProgramStep([GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)])],graphfilter[none]), PageRankVertexProgramStep([VertexStep(OUT,[knows],edge)],friendRank,<span class="integer">30</span>,graphfilter[none]), Travers
@@ -6219,10 +6218,10 @@ ProfileStrategy                 [F]   [T
                                          alVertexProgramStep([OrderGlobalStep([[value(friendRank), decr]]), PropertyMapStep([name, friendRank],value)],graphfilter[none]), ComputerResultStep]
 ComputerVerificationStrategy    [V]   [TraversalVertexProgramStep([GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)])],graphfilter[none]), PageRankVertexProgramStep([VertexStep(OUT,[knows],edge)],friendRank,<span class="integer">30</span>,graphfilter[none]), Travers
                                          alVertexProgramStep([OrderGlobalStep([[value(friendRank), decr]]), PropertyMapStep([name, friendRank],value)],graphfilter[none]), ComputerResultStep]
-StandardVerificationStrategy    [V]   [TraversalVertexProgramStep([GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)])],graphfilter[none]), PageRankVertexProgramStep([VertexStep(OUT,[knows],edge)],friendRank,<span class="integer">30</span>,graphfilter[none]), Travers
-                                         alVertexProgramStep([OrderGlobalStep([[value(friendRank), decr]]), PropertyMapStep([name, friendRank],value)],graphfilter[none]), ComputerResultStep]
 ComputerFinalizationStrategy    [T]   [TraversalVertexProgramStep([GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)])],graphfilter[none]), PageRankVertexProgramStep([VertexStep(OUT,[knows],edge)],friendRank,<span class="integer">30</span>,graphfilter[none]), Travers
                                          alVertexProgramStep([OrderGlobalStep([[value(friendRank), decr]]), PropertyMapStep([name, friendRank],value)],graphfilter[none]), ComputerResultStep]
+StandardVerificationStrategy    [V]   [TraversalVertexProgramStep([GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)])],graphfilter[none]), PageRankVertexProgramStep([VertexStep(OUT,[knows],edge)],friendRank,<span class="integer">30</span>,graphfilter[none]), Travers
+                                         alVertexProgramStep([OrderGlobalStep([[value(friendRank), decr]]), PropertyMapStep([name, friendRank],value)],graphfilter[none]), ComputerResultStep]
 
 Final Traversal                       [TraversalVertexProgramStep([GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)])],graphfilter[none]), PageRankVertexProgramStep([VertexStep(OUT,[knows],edge)],friendRank,<span class="integer">30</span>,graphfilter[none]), Travers
                                          alVertexProgramStep([OrderGlobalStep([[value(friendRank), decr]]), PropertyMapStep([name, friendRank],value)],graphfilter[none]), ComputerResultStep]</code></pre>
@@ -6406,19 +6405,19 @@ profile results, but durations are not e
 ==&gt;Traversal Metrics
 Step                                                               Count  Traversers       <span class="predefined-type">Time</span> (ms)    % Dur
 =============================================================================================================
-TinkerGraphStep(vertex,<span class="type">[]</span>)                                             <span class="integer">6</span>           <span class="integer">6</span>           <span class="float">0.079</span>    <span class="float">13.28</span>
-VertexStep(OUT,[created],vertex)                                       <span class="integer">4</span>           <span class="integer">4</span>           <span class="float">0.104</span>    <span class="float">17.43</span>
-NoOpBarrierStep(<span class="integer">2500</span>)                                                  <span class="integer">4</span>           <span class="integer">2</span>           <span class="float">0.044</span>     <span class="float">7.51</span>
-VertexStep(BOTH,vertex)                                               <span class="integer">10</span>           <span class="integer">4</span>           <span class="float">0.044</span>     <span class="float">7.51</span>
-NoOpBarrierStep(<span class="integer">2500</span>)                                                 <span class="integer">10</span>           <span class="integer">3</span>           <span class="float">0.022</span>     <span class="float">3.75</span>
-VertexStep(BOTH,vertex)                                               <span class="integer">24</span>           <span class="integer">7</span>           <span class="float">0.028</span>     <span class="float">4.73</span>
-NoOpBarrierStep(<span class="integer">2500</span>)                                                 <span class="integer">24</span>           <span class="integer">5</span>           <span class="float">0.029</span>     <span class="float">4.89</span>
-VertexStep(BOTH,vertex)                                               <span class="integer">58</span>          <span class="integer">11</span>           <span class="float">0.039</span>     <span class="float">6.52</span>
-NoOpBarrierStep(<span class="integer">2500</span>)                                                 <span class="integer">58</span>           <span class="integer">6</span>           <span class="float">0.040</span>     <span class="float">6.80</span>
-HasStep([~label.eq(person)])                                          <span class="integer">48</span>           <span class="integer">4</span>           <span class="float">0.032</span>     <span class="float">5.42</span>
-PropertiesStep([age],value)                                           <span class="integer">48</span>           <span class="integer">4</span>           <span class="float">0.036</span>     <span class="float">6.18</span>
-SumGlobalStep                                                          <span class="integer">1</span>           <span class="integer">1</span>           <span class="float">0.095</span>    <span class="float">15.98</span>
-                                            &gt;TOTAL                     -           -           <span class="float">0.598</span>        -</code></pre>
+TinkerGraphStep(vertex,<span class="type">[]</span>)                                             <span class="integer">6</span>           <span class="integer">6</span>           <span class="float">0.228</span>    <span class="float">15.04</span>
+VertexStep(OUT,[created],vertex)                                       <span class="integer">4</span>           <span class="integer">4</span>           <span class="float">0.269</span>    <span class="float">17.76</span>
+NoOpBarrierStep(<span class="integer">2500</span>)                                                  <span class="integer">4</span>           <span class="integer">2</span>           <span class="float">0.144</span>     <span class="float">9.52</span>
+VertexStep(BOTH,vertex)                                               <span class="integer">10</span>           <span class="integer">4</span>           <span class="float">0.108</span>     <span class="float">7.16</span>
+NoOpBarrierStep(<span class="integer">2500</span>)                                                 <span class="integer">10</span>           <span class="integer">3</span>           <span class="float">0.043</span>     <span class="float">2.86</span>
+VertexStep(BOTH,vertex)                                               <span class="integer">24</span>           <span class="integer">7</span>           <span class="float">0.072</span>     <span class="float">4.77</span>
+NoOpBarrierStep(<span class="integer">2500</span>)                                                 <span class="integer">24</span>           <span class="integer">5</span>           <span class="float">0.059</span>     <span class="float">3.93</span>
+VertexStep(BOTH,vertex)                                               <span class="integer">58</span>          <span class="integer">11</span>           <span class="float">0.082</span>     <span class="float">5.42</span>
+NoOpBarrierStep(<span class="integer">2500</span>)                                                 <span class="integer">58</span>           <span class="integer">6</span>           <span class="float">0.106</span>     <span class="float">7.01</span>
+HasStep([~label.eq(person)])                                          <span class="integer">48</span>           <span class="integer">4</span>           <span class="float">0.071</span>     <span class="float">4.68</span>
+PropertiesStep([age],value)                                           <span class="integer">48</span>           <span class="integer">4</span>           <span class="float">0.091</span>     <span class="float">6.00</span>
+SumGlobalStep                                                          <span class="integer">1</span>           <span class="integer">1</span>           <span class="float">0.240</span>    <span class="float">15.85</span>
+                                            &gt;TOTAL                     -           -           <span class="float">1.519</span>        -</code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -6466,10 +6465,10 @@ gremlin&gt; metrics = t.getSideEffects()
 ==&gt;Traversal Metrics
 Step                                                               Count  Traversers       <span class="predefined-type">Time</span> (ms)    % Dur
 =============================================================================================================
-TinkerGraphStep(vertex,<span class="type">[]</span>)                                             <span class="integer">6</span>           <span class="integer">6</span>           <span class="float">0.091</span>   <span class="float">167.95</span>
-VertexStep(OUT,[created],vertex)                                       <span class="integer">4</span>           <span class="integer">4</span>          -<span class="float">0.152</span>  -<span class="float">280.84</span>
-NoOpBarrierStep(<span class="integer">2500</span>)                                                  <span class="integer">4</span>           <span class="integer">2</span>           <span class="float">0.115</span>   <span class="float">212.89</span>
-                                            &gt;TOTAL                     -           -           <span class="float">0.054</span>        -</code></pre>
+TinkerGraphStep(vertex,<span class="type">[]</span>)                                             <span class="integer">6</span>           <span class="integer">6</span>           <span class="float">0.081</span>  <span class="float">3502.33</span>
+VertexStep(OUT,[created],vertex)                                       <span class="integer">4</span>           <span class="integer">4</span>          -<span class="float">0.134</span> -<span class="float">5826.04</span>
+NoOpBarrierStep(<span class="integer">2500</span>)                                                  <span class="integer">4</span>           <span class="integer">2</span>           <span class="float">0.056</span>  <span class="float">2423.70</span>
+                                            &gt;TOTAL                     -           -           <span class="float">0.002</span>        -</code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -6958,14 +6957,14 @@ value is accessed (<code>sack()</code>).
 ==&gt;<span class="float">1.0</span>
 ==&gt;<span class="float">1.0</span>
 gremlin&gt; rand = <span class="keyword">new</span> <span class="predefined-type">Random</span>()
-==&gt;java.util.Random<span class="error">@</span><span class="integer">1</span>b204439
+==&gt;java.util.Random<span class="error">@</span><span class="float">3e668743</span>
 gremlin&gt; g.withSack {rand.nextFloat()}.V().sack()
-==&gt;<span class="float">0.0821895</span>
-==&gt;<span class="float">0.31815153</span>
-==&gt;<span class="float">0.47720277</span>
-==&gt;<span class="float">0.47985858</span>
-==&gt;<span class="float">0.93275684</span>
-==&gt;<span class="float">0.74267316</span></code></pre>
+==&gt;<span class="float">0.93596554</span>
+==&gt;<span class="float">0.33654684</span>
+==&gt;<span class="float">0.1091823</span>
+==&gt;<span class="float">0.4103387</span>
+==&gt;<span class="float">0.07776475</span>
+==&gt;<span class="float">0.06628001</span></code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -7089,7 +7088,7 @@ gremlin&gt;</code></pre>
 <div class="listingblock">
 <div class="content">
 <pre class="CodeRay highlight"><code data-lang="groovy">gremlin&gt; g.V().outE().sample(<span class="integer">1</span>).values(<span class="string"><span class="delimiter">'</span><span class="content">weight</span><span class="delimiter">'</span></span>)
-==&gt;<span class="float">1.0</span>
+==&gt;<span class="float">0.4</span>
 gremlin&gt; g.V().outE().sample(<span class="integer">1</span>).by(<span class="string"><span class="delimiter">'</span><span class="content">weight</span><span class="delimiter">'</span></span>).values(<span class="string"><span class="delimiter">'</span><span class="content">weight</span><span class="delimiter">'</span></span>)
 ==&gt;<span class="float">1.0</span>
 gremlin&gt; g.V().outE().sample(<span class="integer">2</span>).by(<span class="string"><span class="delimiter">'</span><span class="content">weight</span><span class="delimiter">'</span></span>).values(<span class="string"><span class="delimiter">'</span><span class="content">weight</span><span class="delimiter">'</span></span>)
@@ -7109,15 +7108,15 @@ the traverser never splits and continues
 <pre class="CodeRay highlight"><code data-lang="groovy">gremlin&gt; g.V(<span class="integer">1</span>).repeat(local(
                   bothE().sample(<span class="integer">1</span>).by(<span class="string"><span class="delimiter">'</span><span class="content">weight</span><span class="delimiter">'</span></span>).otherV()
                 )).times(<span class="integer">5</span>)
-==&gt;v[<span class="integer">4</span>]
+==&gt;v[<span class="integer">1</span>]
 gremlin&gt; g.V(<span class="integer">1</span>).repeat(local(
                   bothE().sample(<span class="integer">1</span>).by(<span class="string"><span class="delimiter">'</span><span class="content">weight</span><span class="delimiter">'</span></span>).otherV()
                 )).times(<span class="integer">5</span>).path()
-==&gt;[v[<span class="integer">1</span>],e[<span class="integer">7</span>][<span class="integer">1</span>-knows-&gt;<span class="integer">2</span>],v[<span class="integer">2</span>],e[<span class="integer">7</span>][<span class="integer">1</span>-knows-&gt;<span class="integer">2</span>],v[<span class="integer">1</span>],e[<span class="integer">9</span>][<span class="integer">1</span>-created-&gt;<span class="integer">3</span>],v[<span class="integer">3</span>],e[<span class="integer">9</span>][<span class="integer">1</span>-created-&gt;<span class="integer">3</span>],v[<span class="integer">1</span>],e[<span class="integer">7</span>][<span class="integer">1</span>-knows-&gt;<span class="integer">2</span>],v[<span class="integer">2</span>]]
+==&gt;[v[<span class="integer">1</span>],e[<span class="integer">8</span>][<span class="integer">1</span>-knows-&gt;<span class="integer">4</span>],v[<span class="integer">4</span>],e[<span class="integer">8</span>][<span class="integer">1</span>-knows-&gt;<span class="integer">4</span>],v[<span class="integer">1</span>],e[<span class="integer">8</span>][<span class="integer">1</span>-knows-&gt;<span class="integer">4</span>],v[<span class="integer">4</span>],e[<span class="integer">10</span>][<span class="integer">4</span>-created-&gt;<span class="integer">5</span>],v[<span class="integer">5</span>],e[<span class="integer">10</span>][<span class="integer">4</span>-created-&gt;<span class="integer">5</span>],v[<span class="integer">4</span>]]
 gremlin&gt; g.V(<span class="integer">1</span>).repeat(local(
                   bothE().sample(<span class="integer">1</span>).by(<span class="string"><span class="delimiter">'</span><span class="content">weight</span><span class="delimiter">'</span></span>).otherV()
                 )).times(<span class="integer">10</span>).path()
-==&gt;[v[<span class="integer">1</span>],e[<span class="integer">8</span>][<span class="integer">1</span>-knows-&gt;<span class="integer">4</span>],v[<span class="integer">4</span>],e[<span class="integer">8</span>][<span class="integer">1</span>-knows-&gt;<span class="integer">4</span>],v[<span class="integer">1</span>],e[<span class="integer">9</span>][<span class="integer">1</span>-created-&gt;<span class="integer">3</span>],v[<span class="integer">3</span>],e[<span class="integer">11</span>][<span class="integer">4</span>-created-&gt;<span class="integer">3</span>],v[<span class="integer">4</span>],e[<span class="integer">8</span>][<span class="integer">1</span>-knows-&gt;<span class="integer">4</span>],v[<span class="integer">1</span>],e[<span class="integer">7</span>][<span class="integer">1</span>-knows-&gt;<span class="integer">2</span>],v[<span class="integer">2</span>],e[<span class="integer">7</span>][<span class="integer">1</span>-knows-&gt;<span class="integer">2</span>
 ],v[<span class="integer">1</span>],e[<span class="integer">7</span>][<span class="integer">1</span>-knows-&gt;<span class="integer">2</span>],v[<span class="integer">2</span>],e[<span class="integer">7</span>][<span class="integer">1</span>-knows-&gt;<span class="integer">2</span>],v[<span class="integer">1</span>],e[<span class="integer">8</span>][<span class="integer">1</span>-knows-&gt;<span class="integer">4</span>],v[<span class="integer">4</span>]]</code></pre>
+==&gt;[v[<span class="integer">1</span>],e[<span class="integer">9</span>][<span class="integer">1</span>-created-&gt;<span class="integer">3</span>],v[<span class="integer">3</span>],e[<span class="integer">9</span>][<span class="integer">1</span>-created-&gt;<span class="integer">3</span>],v[<span class="integer">1</span>],e[<span class="integer">9</span>][<span class="integer">1</span>-created-&gt;<span class="integer">3</span>],v[<span class="integer">3</span>],e[<span class="integer">11</span>][<span class="integer">4</span>-created-&gt;<span class="integer">3</span>],v[<span class="integer">4</span>],e[<span class="integer">10</span>][<span class="integer">4</span>-created-&gt;<span class="integer">5</span>],v[<span class="integer">5</span>],e[<span class="integer">10</span>][<span class="integer">4</span>-created-&gt;<span class="integer">5</span>],v[<span class="integer">4</span>],e[<span class="integer">8</span>][<span class="integer">1</span>-knows-&gt;<span class="integer
 ">4</span>],v[<span class="integer">1</span>],e[<span class="integer">8</span>][<span class="integer">1</span>-knows-&gt;<span class="integer">4</span>],v[<span class="integer">4</span>],e[<span class="integer">8</span>][<span class="integer">1</span>-knows-&gt;<span class="integer">4</span>],v[<span class="integer">1</span>],e[<span class="integer">7</span>][<span class="integer">1</span>-knows-&gt;<span class="integer">2</span>],v[<span class="integer">2</span>]]</code></pre>
 </div>
 </div>
 </div>
@@ -7688,7 +7687,7 @@ that can be used to time execution of a
 ==&gt;v[<span class="integer">5</span>]=<span class="integer">1136688</span>
 ==&gt;v[<span class="integer">6</span>]=<span class="integer">1136688</span>
 gremlin&gt; clock(<span class="integer">1</span>) {g.V().repeat(both().groupCount(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>)).times(<span class="integer">16</span>).cap(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>).order(local).by(values,decr).next()}
-==&gt;<span class="float">1.9777049999999998</span>
+==&gt;<span class="float">3.4402</span>
 gremlin&gt; g.V().repeat(timeLimit(<span class="integer">2</span>).both().groupCount(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>)).times(<span class="integer">16</span>).cap(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>).order(local).by(values,decr).next()
 ==&gt;v[<span class="integer">1</span>]=<span class="integer">2744208</span>
 ==&gt;v[<span class="integer">3</span>]=<span class="integer">2744208</span>
@@ -7697,7 +7696,7 @@ gremlin&gt; g.V().repeat(timeLimit(<span
 ==&gt;v[<span class="integer">5</span>]=<span class="integer">1136688</span>
 ==&gt;v[<span class="integer">6</span>]=<span class="integer">1136688</span>
 gremlin&gt; clock(<span class="integer">1</span>) {g.V().repeat(timeLimit(<span class="integer">2</span>).both().groupCount(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>)).times(<span class="integer">16</span>).cap(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>).order(local).by(values,decr).next()}
-==&gt;<span class="float">1.696696</span></code></pre>
+==&gt;<span class="float">1.511236</span></code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -7964,20 +7963,20 @@ gremlin&gt; g.V().hasLabel(<span class="
 ==&gt;[<span class="key">id</span>:<span class="integer">8</span>,<span class="key">label</span>:person,<span class="key">name</span>:[matthias]]
 ==&gt;[<span class="key">id</span>:<span class="integer">9</span>,<span class="key">label</span>:person,<span class="key">name</span>:[daniel]]
 gremlin&gt; g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).properties(<span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span>).valueMap(<span class="predefined-constant">true</span>)
-==&gt;[<span class="key">id</span>:<span class="integer">6</span>,<span class="key">value</span>:san diego,<span class="key">key</span>:location,<span class="key">startTime</span>:<span class="integer">1997</span>,<span class="key">endTime</span>:<span class="integer">2001</span>]
-==&gt;[<span class="key">id</span>:<span class="integer">7</span>,<span class="key">value</span>:santa cruz,<span class="key">key</span>:location,<span class="key">startTime</span>:<span class="integer">2001</span>,<span class="key">endTime</span>:<span class="integer">2004</span>]
-==&gt;[<span class="key">id</span>:<span class="integer">8</span>,<span class="key">value</span>:brussels,<span class="key">key</span>:location,<span class="key">startTime</span>:<span class="integer">2004</span>,<span class="key">endTime</span>:<span class="integer">2005</span>]
-==&gt;[<span class="key">id</span>:<span class="integer">9</span>,<span class="key">value</span>:santa fe,<span class="key">key</span>:location,<span class="key">startTime</span>:<span class="integer">2005</span>]
-==&gt;[<span class="key">id</span>:<span class="integer">10</span>,<span class="key">value</span>:centreville,<span class="key">key</span>:location,<span class="key">startTime</span>:<span class="integer">1990</span>,<span class="key">endTime</span>:<span class="integer">2000</span>]
-==&gt;[<span class="key">id</span>:<span class="integer">11</span>,<span class="key">value</span>:dulles,<span class="key">key</span>:location,<span class="key">startTime</span>:<span class="integer">2000</span>,<span class="key">endTime</span>:<span class="integer">2006</span>]
-==&gt;[<span class="key">id</span>:<span class="integer">12</span>,<span class="key">value</span>:purcellville,<span class="key">key</span>:location,<span class="key">startTime</span>:<span class="integer">2006</span>]
-==&gt;[<span class="key">id</span>:<span class="integer">13</span>,<span class="key">value</span>:bremen,<span class="key">key</span>:location,<span class="key">startTime</span>:<span class="integer">2004</span>,<span class="key">endTime</span>:<span class="integer">2007</span>]
-==&gt;[<span class="key">id</span>:<span class="integer">14</span>,<span class="key">value</span>:baltimore,<span class="key">key</span>:location,<span class="key">startTime</span>:<span class="integer">2007</span>,<span class="key">endTime</span>:<span class="integer">2011</span>]
-==&gt;[<span class="key">id</span>:<span class="integer">15</span>,<span class="key">value</span>:oakland,<span class="key">key</span>:location,<span class="key">startTime</span>:<span class="integer">2011</span>,<span class="key">endTime</span>:<span class="integer">2014</span>]
-==&gt;[<span class="key">id</span>:<span class="integer">16</span>,<span class="key">value</span>:seattle,<span class="key">key</span>:location,<span class="key">startTime</span>:<span class="integer">2014</span>]
-==&gt;[<span class="key">id</span>:<span class="integer">17</span>,<span class="key">value</span>:spremberg,<span class="key">key</span>:location,<span class="key">startTime</span>:<span class="integer">1982</span>,<span class="key">endTime</span>:<span class="integer">2005</span>]
-==&gt;[<span class="key">id</span>:<span class="integer">18</span>,<span class="key">value</span>:kaiserslautern,<span class="key">key</span>:location,<span class="key">startTime</span>:<span class="integer">2005</span>,<span class="key">endTime</span>:<span class="integer">2009</span>]
-==&gt;[<span class="key">id</span>:<span class="integer">19</span>,<span class="key">value</span>:aachen,<span class="key">key</span>:location,<span class="key">startTime</span>:<span class="integer">2009</span>]</code></pre>
+==&gt;[<span class="key">id</span>:<span class="integer">6</span>,<span class="key">key</span>:location,<span class="key">value</span>:san diego,<span class="key">startTime</span>:<span class="integer">1997</span>,<span class="key">endTime</span>:<span class="integer">2001</span>]
+==&gt;[<span class="key">id</span>:<span class="integer">7</span>,<span class="key">key</span>:location,<span class="key">value</span>:santa cruz,<span class="key">startTime</span>:<span class="integer">2001</span>,<span class="key">endTime</span>:<span class="integer">2004</span>]
+==&gt;[<span class="key">id</span>:<span class="integer">8</span>,<span class="key">key</span>:location,<span class="key">value</span>:brussels,<span class="key">startTime</span>:<span class="integer">2004</span>,<span class="key">endTime</span>:<span class="integer">2005</span>]
+==&gt;[<span class="key">id</span>:<span class="integer">9</span>,<span class="key">key</span>:location,<span class="key">value</span>:santa fe,<span class="key">startTime</span>:<span class="integer">2005</span>]
+==&gt;[<span class="key">id</span>:<span class="integer">10</span>,<span class="key">key</span>:location,<span class="key">value</span>:centreville,<span class="key">startTime</span>:<span class="integer">1990</span>,<span class="key">endTime</span>:<span class="integer">2000</span>]
+==&gt;[<span class="key">id</span>:<span class="integer">11</span>,<span class="key">key</span>:location,<span class="key">value</span>:dulles,<span class="key">startTime</span>:<span class="integer">2000</span>,<span class="key">endTime</span>:<span class="integer">2006</span>]
+==&gt;[<span class="key">id</span>:<span class="integer">12</span>,<span class="key">key</span>:location,<span class="key">value</span>:purcellville,<span class="key">startTime</span>:<span class="integer">2006</span>]
+==&gt;[<span class="key">id</span>:<span class="integer">13</span>,<span class="key">key</span>:location,<span class="key">value</span>:bremen,<span class="key">startTime</span>:<span class="integer">2004</span>,<span class="key">endTime</span>:<span class="integer">2007</span>]
+==&gt;[<span class="key">id</span>:<span class="integer">14</span>,<span class="key">key</span>:location,<span class="key">value</span>:baltimore,<span class="key">startTime</span>:<span class="integer">2007</span>,<span class="key">endTime</span>:<span class="integer">2011</span>]
+==&gt;[<span class="key">id</span>:<span class="integer">15</span>,<span class="key">key</span>:location,<span class="key">value</span>:oakland,<span class="key">startTime</span>:<span class="integer">2011</span>,<span class="key">endTime</span>:<span class="integer">2014</span>]
+==&gt;[<span class="key">id</span>:<span class="integer">16</span>,<span class="key">key</span>:location,<span class="key">value</span>:seattle,<span class="key">startTime</span>:<span class="integer">2014</span>]
+==&gt;[<span class="key">id</span>:<span class="integer">17</span>,<span class="key">key</span>:location,<span class="key">value</span>:spremberg,<span class="key">startTime</span>:<span class="integer">1982</span>,<span class="key">endTime</span>:<span class="integer">2005</span>]
+==&gt;[<span class="key">id</span>:<span class="integer">18</span>,<span class="key">key</span>:location,<span class="key">value</span>:kaiserslautern,<span class="key">startTime</span>:<span class="integer">2005</span>,<span class="key">endTime</span>:<span class="integer">2009</span>]
+==&gt;[<span class="key">id</span>:<span class="integer">19</span>,<span class="key">key</span>:location,<span class="key">value</span>:aachen,<span class="key">startTime</span>:<span class="integer">2009</span>]</code></pre>
 </div>
 </div>
 </div>
@@ -8511,7 +8510,7 @@ gremlin&gt; g.V().groupCount().by(label)
 gremlin&gt; g.V().groupCount().by(label).order(local).by(values,decr)
 ==&gt;[<span class="key">person</span>:<span class="integer">4</span>,<span class="key">software</span>:<span class="integer">2</span>]
 gremlin&gt; g.V().fold().sample(local,<span class="integer">2</span>)
-==&gt;[v[<span class="integer">2</span>],v[<span class="integer">6</span>]]</code></pre>
+==&gt;[v[<span class="integer">4</span>],v[<span class="integer">6</span>]]</code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -8826,11 +8825,11 @@ AdjacentToIncidentStrategy   [O]   [Grap
 RepeatUnrollStrategy         [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), TraversalFilterStep([PropertiesStep([name],property)]), HasStep([name.eq(marko), age.gt(<span class="integer">20</span>), age.lt(<span class="integer">32</span>)])<span class="error">@</span>[a], MatchStep(AND,[[MatchStartStep(a), Ver
                                       texStep(OUT,vertex), NoOpBarrierStep(<span class="integer">2500</span>), VertexStep(OUT,vertex), NoOpBarrierStep(<span class="integer">2500</span>), MatchEndStep(b)], [MatchStartStep(a), WherePredicateStep(neq(b)), MatchEndStep], [MatchStartStep(b), WhereTrave
                                       rsalStep([WhereStartStep, VertexStep(BOTH,edge), CountGlobalStep, IsStep(gt(<span class="integer">1</span>))]), MatchEndStep]]), SelectOneStep(b), GroupCountStep([VertexStep(OUT,edge), CountGlobalStep])]
-RangeByIsCountStrategy       [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), TraversalFilterStep([PropertiesStep([name],property)]), HasStep([name.eq(marko), age.gt(<span class="integer">20</span>), age.lt(<span class="integer">32</span>)])<span class="error">@</span>[a], MatchStep(AND,[[MatchStartStep(a), Ver
-                                      texStep(OUT,vertex), NoOpBarrierStep(<span class="integer">2500</span>), VertexStep(OUT,vertex), NoOpBarrierStep(<span class="integer">2500</span>), MatchEndStep(b)], [MatchStartStep(a), WherePredicateStep(neq(b)), MatchEndStep], [MatchStartStep(b), WhereTrave
-                                      rsalStep([WhereStartStep, VertexStep(BOTH,edge), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">2</span>), CountGlobalStep, IsStep(gt(<span class="integer">1</span>))]), MatchEndStep]]), SelectOneStep(b), GroupCountStep([VertexStep(OUT,edge), CountGlobalStep])]
 PathRetractionStrategy       [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), TraversalFilterStep([PropertiesStep([name],property)]), HasStep([name.eq(marko), age.gt(<span class="integer">20</span>), age.lt(<span class="integer">32</span>)])<span class="error">@</span>[a], MatchStep(AND,[[MatchStartStep(a), Ver
                                       texStep(OUT,vertex), NoOpBarrierStep(<span class="integer">2500</span>), VertexStep(OUT,vertex), NoOpBarrierStep(<span class="integer">2500</span>), MatchEndStep(b)], [MatchStartStep(a), WherePredicateStep(neq(b)), MatchEndStep], [MatchStartStep(b), WhereTrave
+                                      rsalStep([WhereStartStep, VertexStep(BOTH,edge), CountGlobalStep, IsStep(gt(<span class="integer">1</span>))]), MatchEndStep]]), SelectOneStep(b), GroupCountStep([VertexStep(OUT,edge), CountGlobalStep])]
+RangeByIsCountStrategy       [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), TraversalFilterStep([PropertiesStep([name],property)]), HasStep([name.eq(marko), age.gt(<span class="integer">20</span>), age.lt(<span class="integer">32</span>)])<span class="error">@</span>[a], MatchStep(AND,[[MatchStartStep(a), Ver
+                                      texStep(OUT,vertex), NoOpBarrierStep(<span class="integer">2500</span>), VertexStep(OUT,vertex), NoOpBarrierStep(<span class="integer">2500</span>), MatchEndStep(b)], [MatchStartStep(a), WherePredicateStep(neq(b)), MatchEndStep], [MatchStartStep(b), WhereTrave
                                       rsalStep([WhereStartStep, VertexStep(BOTH,edge), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">2</span>), CountGlobalStep, IsStep(gt(<span class="integer">1</span>))]), MatchEndStep]]), SelectOneStep(b), GroupCountStep([VertexStep(OUT,edge), CountGlobalStep])]
 LazyBarrierStrategy          [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), TraversalFilterStep([PropertiesStep([name],property)]), HasStep([name.eq(marko), age.gt(<span class="integer">20</span>), age.lt(<span class="integer">32</span>)])<span class="error">@</span>[a], MatchStep(AND,[[MatchStartStep(a), Ver
                                       texStep(OUT,vertex), NoOpBarrierStep(<span class="integer">2500</span>), VertexStep(OUT,vertex), NoOpBarrierStep(<span class="integer">2500</span>), MatchEndStep(b)], [MatchStartStep(a), WherePredicateStep(neq(b)), MatchEndStep], [MatchStartStep(b), WhereTrave
@@ -9147,8 +9146,8 @@ InlineFilterStrategy         [O]   [Grap
 IncidentToAdjacentStrategy   [O]   [GraphStep(vertex,<span class="type">[]</span>)<span class="error">@</span>[a], PropertiesStep([location],property), NotStep([PropertiesStep([endTime],value)]), PropertyValueStep<span class="error">@</span>[b], SelectStep([a, b],[value(name), identity])]
 AdjacentToIncidentStrategy   [O]   [GraphStep(vertex,<span class="type">[]</span>)<span class="error">@</span>[a], PropertiesStep([location],property), NotStep([PropertiesStep([endTime],property)]), PropertyValueStep<span class="error">@</span>[b], SelectStep([a, b],[value(name), identity])]
 RepeatUnrollStrategy         [O]   [GraphStep(vertex,<span class="type">[]</span>)<span class="error">@</span>[a], PropertiesStep([location],property), NotStep([PropertiesStep([endTime],property)]), PropertyValueStep<span class="error">@</span>[b], SelectStep([a, b],[value(name), identity])]
-RangeByIsCountStrategy       [O]   [GraphStep(vertex,<span class="type">[]</span>)<span class="error">@</span>[a], PropertiesStep([location],property), NotStep([PropertiesStep([endTime],property)]), PropertyValueStep<span class="error">@</span>[b], SelectStep([a, b],[value(name), identity])]
 PathRetractionStrategy       [O]   [GraphStep(vertex,<span class="type">[]</span>)<span class="error">@</span>[a], PropertiesStep([location],property), NotStep([PropertiesStep([endTime],property)]), PropertyValueStep<span class="error">@</span>[b], SelectStep([a, b],[value(name), identity])]
+RangeByIsCountStrategy       [O]   [GraphStep(vertex,<span class="type">[]</span>)<span class="error">@</span>[a], PropertiesStep([location],property), NotStep([PropertiesStep([endTime],property)]), PropertyValueStep<span class="error">@</span>[b], SelectStep([a, b],[value(name), identity])]
 LazyBarrierStrategy          [O]   [GraphStep(vertex,<span class="type">[]</span>)<span class="error">@</span>[a], PropertiesStep([location],property), NotStep([PropertiesStep([endTime],property)]), PropertyValueStep<span class="error">@</span>[b], SelectStep([a, b],[value(name), identity])]
 TinkerGraphCountStrategy     [P]   [GraphStep(vertex,<span class="type">[]</span>)<span class="error">@</span>[a], PropertiesStep([location],property), NotStep([PropertiesStep([endTime],property)]), PropertyValueStep<span class="error">@</span>[b], SelectStep([a, b],[value(name), identity])]
 TinkerGraphStepStrategy      [P]   [TinkerGraphStep(vertex,<span class="type">[]</span>)<span class="error">@</span>[a], PropertiesStep([location],property), NotStep([PropertiesStep([endTime],property)]), PropertyValueStep<span class="error">@</span>[b], SelectStep([a, b],[value(name), identity])]
@@ -9487,17 +9486,20 @@ might look like this:</p>
         <span class="keyword">return</span> <span class="predefined-constant">self</span>.outE(<span class="string"><span class="delimiter">&quot;</span><span class="content">created</span><span class="delimiter">&quot;</span></span>).count().is_(P.gte(number))
 
 <span class="keyword">class</span> <span class="class">__</span>(AnonymousTraversal):
-    <span class="decorator">@staticmethod</span>
-    <span class="keyword">def</span> <span class="function">knows</span>(*args):
-        <span class="keyword">return</span> SocialTraversal(<span class="predefined-constant">None</span>, <span class="predefined-constant">None</span>, Bytecode()).knows(*args)
-
-    <span class="decorator">@staticmethod</span>
-    <span class="keyword">def</span> <span class="function">youngestFriendsAge</span>(*args):
-        <span class="keyword">return</span> SocialTraversal(<span class="predefined-constant">None</span>, <span class="predefined-constant">None</span>, Bytecode()).youngestFriendsAge(*args)
-
-    <span class="decorator">@staticmethod</span>
-    <span class="keyword">def</span> <span class="function">createdAtLeast</span>(*args):
-        <span class="keyword">return</span> SocialTraversal(<span class="predefined-constant">None</span>, <span class="predefined-constant">None</span>, Bytecode()).createdAtLeast(*args)
+
+    graph_traversal = SocialTraversal
+
+    <span class="decorator">@classmethod</span>
+    <span class="keyword">def</span> <span class="function">knows</span>(cls, *args):
+        <span class="keyword">return</span> cls.graph_traversal(<span class="predefined-constant">None</span>, <span class="predefined-constant">None</span>, Bytecode()).knows(*args)
+
+    <span class="decorator">@classmethod</span>
+    <span class="keyword">def</span> <span class="function">youngestFriendsAge</span>(cls, *args):
+        <span class="keyword">return</span> cls.graph_traversal(<span class="predefined-constant">None</span>, <span class="predefined-constant">None</span>, Bytecode()).youngestFriendsAge(*args)
+
+    <span class="decorator">@classmethod</span>
+    <span class="keyword">def</span> <span class="function">createdAtLeast</span>(cls, *args):
+        <span class="keyword">return</span> cls.graph_traversal(<span class="predefined-constant">None</span>, <span class="predefined-constant">None</span>, Bytecode()).createdAtLeast(*args)
 
 
 <span class="keyword">class</span> <span class="class">SocialTraversalSource</span>(GraphTraversalSource):
@@ -9640,7 +9642,7 @@ memory manipulations).</p>
 <pre class="CodeRay highlight"><code data-lang="groovy">gremlin&gt; result = graph.compute().program(PageRankVertexProgram.build().create()).submit().get()
 ==&gt;result[tinkergraph[<span class="key">vertices</span>:<span class="integer">6</span> <span class="key">edges</span>:<span class="integer">0</span>],memory[<span class="key">size</span>:<span class="integer">0</span>]]
 gremlin&gt; result.memory().runtime
-==&gt;<span class="integer">95</span>
+==&gt;<span class="integer">109</span>
 gremlin&gt; g = result.graph().traversal()
 ==&gt;graphtraversalsource[tinkergraph[<span class="key">vertices</span>:<span class="integer">6</span> <span class="key">edges</span>:<span class="integer">0</span>], standard]
 gremlin&gt; g.V().valueMap()
@@ -10007,7 +10009,7 @@ methods of a <code>VertexProgram</code>,
 <pre class="CodeRay highlight"><code data-lang="groovy">gremlin&gt; result = graph.compute().program(PageRankVertexProgram.build().create()).submit().get()
 ==&gt;result[tinkergraph[<span class="key">vertices</span>:<span class="integer">6</span> <span class="key">edges</span>:<span class="integer">0</span>],memory[<span class="key">size</span>:<span class="integer">0</span>]]
 gremlin&gt; result.memory().runtime
-==&gt;<span class="integer">32</span>
+==&gt;<span class="integer">33</span>
 gremlin&gt; g = result.graph().traversal()
 ==&gt;graphtraversalsource[tinkergraph[<span class="key">vertices</span>:<span class="integer">6</span> <span class="key">edges</span>:<span class="integer">0</span>], standard]
 gremlin&gt; g.V().valueMap()
@@ -10027,9 +10029,9 @@ gremlin&gt; g.V().valueMap()
 <pre class="CodeRay highlight"><code data-lang="groovy">gremlin&gt; g = graph.traversal().withComputer()
 ==&gt;graphtraversalsource[tinkergraph[<span class="key">vertices</span>:<span class="integer">6</span> <span class="key">edges</span>:<span class="integer">6</span>], graphcomputer]
 gremlin&gt; g.V().pageRank().valueMap()
+==&gt;[gremlin.pageRankVertexProgram.pageRank:[<span class="float">0.15000000000000002</span>],<span class="key">name</span>:[marko],<span class="key">age</span>:[<span class="integer">29</span>]]
 ==&gt;[gremlin.pageRankVertexProgram.pageRank:[<span class="float">0.4018125</span>],<span class="key">name</span>:[lop],<span class="key">lang</span>:[java]]
 ==&gt;[gremlin.pageRankVertexProgram.pageRank:[<span class="float">0.19250000000000003</span>],<span class="key">name</span>:[vadas],<span class="key">age</span>:[<span class="integer">27</span>]]
-==&gt;[gremlin.pageRankVertexProgram.pageRank:[<span class="float">0.15000000000000002</span>],<span class="key">name</span>:[marko],<span class="key">age</span>:[<span class="integer">29</span>]]
 ==&gt;[gremlin.pageRankVertexProgram.pageRank:[<span class="float">0.19250000000000003</span>],<span class="key">name</span>:[josh],<span class="key">age</span>:[<span class="integer">32</span>]]
 ==&gt;[gremlin.pageRankVertexProgram.pageRank:[<span class="float">0.23181250000000003</span>],<span class="key">name</span>:[ripple],<span class="key">lang</span>:[java]]
 ==&gt;[gremlin.pageRankVertexProgram.pageRank:[<span class="float">0.15000000000000002</span>],<span class="key">name</span>:[peter],<span class="key">age</span>:[<span class="integer">35</span>]]
@@ -10122,7 +10124,7 @@ from one TinkerGraph to another:</p>
 <div class="listingblock">
 <div class="content">
 <pre class="CodeRay highlight"><code data-lang="groovy">gremlin&gt; writeGraphConf = <span class="keyword">new</span> BaseConfiguration()
-==&gt;org.apache.commons.configuration.BaseConfiguration<span class="error">@</span><span class="integer">359</span>ceb13
+==&gt;org.apache.commons.configuration.BaseConfiguration<span class="error">@</span><span class="float">204d</span><span class="integer">9</span>edf
 gremlin&gt; writeGraphConf.setProperty(<span class="string"><span class="delimiter">&quot;</span><span class="content">gremlin.graph</span><span class="delimiter">&quot;</span></span>, <span class="string"><span class="delimiter">&quot;</span><span class="content">org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph</span><span class="delimiter">&quot;</span></span>)
 gremlin&gt; writeGraphConf.setProperty(<span class="string"><span class="delimiter">&quot;</span><span class="content">gremlin.tinkergraph.graphFormat</span><span class="delimiter">&quot;</span></span>, <span class="string"><span class="delimiter">&quot;</span><span class="content">gryo</span><span class="delimiter">&quot;</span></span>)
 gremlin&gt; writeGraphConf.setProperty(<span class="string"><span class="delimiter">&quot;</span><span class="content">gremlin.tinkergraph.graphLocation</span><span class="delimiter">&quot;</span></span>, <span class="string"><span class="delimiter">&quot;</span><span class="content">/tmp/tinkergraph.kryo</span><span class="delimiter">&quot;</span></span>)
@@ -10341,7 +10343,7 @@ gremlin&gt; result.memory().a
 gremlin&gt; result.memory().iteration
 ==&gt;<span class="integer">1</span>
 gremlin&gt; result.memory().runtime
-==&gt;<span class="integer">8</span></code></pre>
+==&gt;<span class="integer">11</span></code></pre>
 </div>
 </div>
 <div class="sect3">
@@ -11146,6 +11148,20 @@ on how to develop a driver for Gremlin S
 <p>By default, communication with Gremlin Server occurs over <a href="http://en.wikipedia.org/wiki/WebSocket">WebSocket</a> and
 exposes a custom sub-protocol for interacting with the server.</p>
 </div>
+<div class="admonitionblock warning">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Warning</div>
+</td>
+<td class="content">
+Gremlin Server allows for the execution of remotely submitted "scripts" (i.e. arbitrary code sent by a client
+to the server). Developers should consider the security implications involved in running Gremlin Server without the
+appropriate precautions. Please review the <a href="#script-execution">Script Execution Section</a> for more information.
+</td>
+</tr>
+</table>
+</div>
 <div class="sect2">
 <h3 id="starting-gremlin-server">Starting Gremlin Server</h3>
 <div class="paragraph">
@@ -11404,6 +11420,18 @@ small sub-graphs, is serializable from G
 </table>
 </div>
 <div class="paragraph">
+<p>The alternative syntax to connecting allows for the <code>Cluster</code> to be user constructed directly in the console as
+opposed to simply providing a static YAML file.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="groovy">gremlin&gt; cluster = Cluster.open()
+==&gt;localhost/<span class="float">127.0</span><span class="float">.0</span><span class="float">.1</span>:<span class="integer">8182</span>
+gremlin&gt; :remote connect tinkerpop.server cluster
+==&gt;Configured localhost/<span class="float">127.0</span><span class="float">.0</span><span class="float">.1</span>:<span class="integer">8182</span></code></pre>
+</div>
+</div>
+<div class="paragraph">
 <p>The Gremlin Server <code>:remote config</code> command for the driver has the following configuration options:</p>
 </div>
 <table class="tableblock frame-all grid-all spread">
@@ -11497,7 +11525,7 @@ for more information on that topic.</p>
 <div class="listingblock">
 <div class="content">
 <pre class="CodeRay highlight"><code data-lang="groovy">gremlin&gt; :remote connect tinkerpop.server conf/remote.yaml session
-==&gt;Configured localhost/<span class="float">127.0</span><span class="float">.0</span><span class="float">.1</span>:<span class="integer">8182</span>-[f1f539da-<span class="integer">6432</span>-<span class="float">4e78</span>-<span class="integer">8197</span>-<span class="integer">1892</span>c08ac2d6]
+==&gt;Configured localhost/<span class="float">127.0</span><span class="float">.0</span><span class="float">.1</span>:<span class="integer">8182</span>-[c016ed63-bb56-<span class="integer">45</span>ca-bb03-b124b1f1968b]
 gremlin&gt; :&gt; x = <span class="integer">1</span>
 ==&gt;<span class="integer">1</span>
 gremlin&gt; :&gt; y = <span class="integer">2</span>
@@ -11524,9 +11552,9 @@ work with a remote connection to the ser
 <div class="listingblock">
 <div class="content">
 <pre class="CodeRay highlight"><code data-lang="groovy">gremlin&gt; :remote connect tinkerpop.server conf/remote.yaml session
-==&gt;Configured localhost/<span class="float">127.0</span><span class="float">.0</span><span class="float">.1</span>:<span class="integer">8182</span>-[ac456a0c-<span class="integer">0379</span>-<span class="float">40d</span><span class="integer">9</span>-a2d2-d2d4693fdd7c]
+==&gt;Configured localhost/<span class="float">127.0</span><span class="float">.0</span><span class="float">.1</span>:<span class="integer">8182</span>-[ad15ba11-<span class="float">8d</span><span class="float">7e-4d</span><span class="float">1f</span>-aad7-<span class="integer">4879</span>a5c0e27b]
 gremlin&gt; :remote console
-==&gt;All scripts will now be sent to Gremlin Server - [localhost/<span class="float">127.0</span><span class="float">.0</span><span class="float">.1</span>:<span class="integer">8182</span>]-[ac456a0c-<span class="integer">0379</span>-<span class="float">40d</span><span class="integer">9</span>-a2d2-d2d4693fdd7c] - type <span class="string"><span class="delimiter">'</span><span class="content">:remote console</span><span class="delimiter">'</span></span> to <span class="keyword">return</span> to local mode
+==&gt;All scripts will now be sent to Gremlin Server - [localhost/<span class="float">127.0</span><span class="float">.0</span><span class="float">.1</span>:<span class="integer">8182</span>]-[ad15ba11-<span class="float">8d</span><span class="float">7e-4d</span><span class="float">1f</span>-aad7-<span class="integer">4879</span>a5c0e27b] - type <span class="string"><span class="delimiter">'</span><span class="content">:remote console</span><span class="delimiter">'</span></span> to <span class="keyword">return</span> to local mode
 gremlin&gt; x = <span class="integer">1</span>
 ==&gt;<span class="integer">1</span>
 gremlin&gt; y = <span class="integer">2</span>
@@ -11534,7 +11562,7 @@ gremlin&gt; y = <span class="integer">2<
 gremlin&gt; x + y
 ==&gt;<span class="integer">3</span>
 gremlin&gt; :remote console
-==&gt;All scripts will now be evaluated locally - type <span class="string"><span class="delimiter">'</span><span class="content">:remote console</span><span class="delimiter">'</span></span> to <span class="keyword">return</span> to remote mode <span class="keyword">for</span> Gremlin Server - [localhost/<span class="float">127.0</span><span class="float">.0</span><span class="float">.1</span>:<span class="integer">8182</span>]-[ac456a0c-<span class="integer">0379</span>-<span class="float">40d</span><span class="integer">9</span>-a2d2-d2d4693fdd7c]</code></pre>
+==&gt;All scripts will now be evaluated locally - type <span class="string"><span class="delimiter">'</span><span class="content">:remote console</span><span class="delimiter">'</span></span> to <span class="keyword">return</span> to remote mode <span class="keyword">for</span> Gremlin Server - [localhost/<span class="float">127.0</span><span class="float">.0</span><span class="float">.1</span>:<span class="integer">8182</span>]-[ad15ba11-<span class="float">8d</span><span class="float">7e-4d</span><span class="float">1f</span>-aad7-<span class="integer">4879</span>a5c0e27b]</code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -12242,13 +12270,13 @@ the <code>TraversalSource</code> be gene
 gremlin&gt; g = graph.traversal().withRemote(<span class="string"><span class="delimiter">'</span><span class="content">conf/remote-graph.properties</span><span class="delimiter">'</span></span>)
 ==&gt;graphtraversalsource[emptygraph[empty], standard]
 gremlin&gt; g.V().valueMap(<span class="predefined-constant">true</span>)
-==&gt;[<span class="key">id</span>:<span class="integer">1</span>,<span class="key">name</span>:[marko],<span class="key">label</span>:person,<span class="key">age</span>:[<span class="integer">29</span>]]
-==&gt;[<span class="key">id</span>:<span class="integer">2</span>,<span class="key">name</span>:[vadas],<span class="key">label</span>:person,<span class="key">age</span>:[<span class="integer">27</span>]]
-==&gt;[<span class="key">id</span>:<span class="integer">3</span>,<span class="key">name</span>:[lop],<span class="key">label</span>:software,<span class="key">lang</span>:[java]]
-==&gt;[<span class="key">id</span>:<span class="integer">4</span>,<span class="key">name</span>:[josh],<span class="key">label</span>:person,<span class="key">age</span>:[<span class="integer">32</span>]]
-==&gt;[<span class="key">id</span>:<span class="integer">5</span>,<span class="key">name</span>:[ripple],<span class="key">label</span>:software,<span class="key">lang</span>:[java]]
-==&gt;[<span class="key">id</span>:<span class="integer">6</span>,<span class="key">name</span>:[peter],<span class="key">label</span>:person,<span class="key">age</span>:[<span class="integer">35</span>]]
-==&gt;[<span class="key">id</span>:<span class="integer">13</span>,<span class="key">name</span>:[matthias],<span class="key">label</span>:vertex]
+==&gt;[<span class="key">label</span>:person,<span class="key">name</span>:[marko],<span class="key">id</span>:<span class="integer">1</span>,<span class="key">age</span>:[<span class="integer">29</span>]]
+==&gt;[<span class="key">label</span>:person,<span class="key">name</span>:[vadas],<span class="key">id</span>:<span class="integer">2</span>,<span class="key">age</span>:[<span class="integer">27</span>]]
+==&gt;[<span class="key">label</span>:software,<span class="key">name</span>:[lop],<span class="key">lang</span>:[java],<span class="key">id</span>:<span class="integer">3</span>]
+==&gt;[<span class="key">label</span>:person,<span class="key">name</span>:[josh],<span class="key">id</span>:<span class="integer">4</span>,<span class="key">age</span>:[<span class="integer">32</span>]]
+==&gt;[<span class="key">label</span>:software,<span class="key">name</span>:[ripple],<span class="key">lang</span>:[java],<span class="key">id</span>:<span class="integer">5</span>]
+==&gt;[<span class="key">label</span>:person,<span class="key">name</span>:[peter],<span class="key">id</span>:<span class="integer">6</span>,<span class="key">age</span>:[<span class="integer">35</span>]]
+==&gt;[<span class="key">label</span>:vertex,<span class="key">name</span>:[matthias],<span class="key">id</span>:<span class="integer">13</span>]
 gremlin&gt; g.close()</code></pre>
 </div>
 </div>
@@ -12270,13 +12298,13 @@ gremlin&gt; graph = EmptyGraph.instance(
 gremlin&gt; g = graph.traversal().withRemote(DriverRemoteConnection.using(cluster, <span class="string"><span class="delimiter">&quot;</span><span class="content">g</span><span class="delimiter">&quot;</span></span>))
 ==&gt;graphtraversalsource[emptygraph[empty], standard]
 gremlin&gt; g.V().valueMap(<span class="predefined-constant">true</span>)
-==&gt;[<span class="key">id</span>:<span class="integer">1</span>,<span class="key">name</span>:[marko],<span class="key">label</span>:person,<span class="key">age</span>:[<span class="integer">29</span>]]
-==&gt;[<span class="key">id</span>:<span class="integer">2</span>,<span class="key">name</span>:[vadas],<span class="key">label</span>:person,<span class="key">age</span>:[<span class="integer">27</span>]]
-==&gt;[<span class="key">id</span>:<span class="integer">3</span>,<span class="key">name</span>:[lop],<span class="key">label</span>:software,<span class="key">lang</span>:[java]]
-==&gt;[<span class="key">id</span>:<span class="integer">4</span>,<span class="key">name</span>:[josh],<span class="key">label</span>:person,<span class="key">age</span>:[<span class="integer">32</span>]]
-==&gt;[<span class="key">id</span>:<span class="integer">5</span>,<span class="key">name</span>:[ripple],<span class="key">label</span>:software,<span class="key">lang</span>:[java]]
-==&gt;[<span class="key">id</span>:<span class="integer">6</span>,<span class="key">name</span>:[peter],<span class="key">label</span>:person,<span class="key">age</span>:[<span class="integer">35</span>]]
-==&gt;[<span class="key">id</span>:<span class="integer">13</span>,<span class="key">name</span>:[matthias],<span class="key">label</span>:vertex]
+==&gt;[<span class="key">label</span>:person,<span class="key">name</span>:[marko],<span class="key">id</span>:<span class="integer">1</span>,<span class="key">age</span>:[<span class="integer">29</span>]]
+==&gt;[<span class="key">label</span>:person,<span class="key">name</span>:[vadas],<span class="key">id</span>:<span class="integer">2</span>,<span class="key">age</span>:[<span class="integer">27</span>]]
+==&gt;[<span class="key">label</span>:software,<span class="key">name</span>:[lop],<span class="key">lang</span>:[java],<span class="key">id</span>:<span class="integer">3</span>]
+==&gt;[<span class="key">label</span>:person,<span class="key">name</span>:[josh],<span class="key">id</span>:<span class="integer">4</span>,<span class="key">age</span>:[<span class="integer">32</span>]]
+==&gt;[<span class="key">label</span>:software,<span class="key">name</span>:[ripple],<span class="key">lang</span>:[java],<span class="key">id</span>:<span class="integer">5</span>]
+==&gt;[<span class="key">label</span>:person,<span class="key">name</span>:[peter],<span class="key">id</span>:<span class="integer">6</span>,<span class="key">age</span>:[<span class="integer">35</span>]]
+==&gt;[<span class="key">label</span>:vertex,<span class="key">name</span>:[matthias],<span class="key">id</span>:<span class="integer">13</span>]
 gremlin&gt; g.close()
 gremlin&gt; cluster.close()</code></pre>
 </div>
@@ -12947,7 +12975,7 @@ gremlin&gt; credentials.createUser(<span
 gremlin&gt; credentials.createUser(<span class="string"><span class="delimiter">&quot;</span><span class="content">marko</span><span class="delimiter">&quot;</span></span>,<span class="string"><span class="delimiter">&quot;</span><span class="content">rainbow-dash</span><span class="delimiter">&quot;</span></span>)
 ==&gt;v[<span class="integer">6</span>]
 gremlin&gt; credentials.findUser(<span class="string"><span class="delimiter">&quot;</span><span class="content">marko</span><span class="delimiter">&quot;</span></span>).properties()
-==&gt;vp[password-&gt;<span class="error">$</span><span class="integer">2</span>a<span class="error">$</span><span class="octal">04</span><span class="error">$</span>uR4PmcyMsl93M]
+==&gt;vp[password-&gt;<span class="error">$</span><span class="integer">2</span>a<span class="error">$</span><span class="octal">04</span><span class="error">$</span><span class="integer">7</span>BPDGWTK49RCN]
 ==&gt;vp[username-&gt;marko]
 gremlin&gt; credentials.countUsers()
 ==&gt;<span class="integer">3</span>
@@ -12969,8 +12997,15 @@ preventing it from serving other request
 available threads and Gremlin Server would stop responding.</p>
 </div>
 <div class="paragraph">
-<p>Gremlin Server (more specifically the <code>GremlinGroovyScriptEngine</code>) provides methods to protect itself from these
-kinds of troublesome scripts.  A user can configure the script engine with different <code>CompilerCustomizerProvider</code>
+<p>Scripts have access to the full power of their language and the JVM on which they are running. This means that they
+can access certain APIs that have nothing to do with Gremlin itself, such as <code>java.lang.System</code> or the <code>java.io</code>
+and <code>java.net</code> packages. Scripts offer developers a lot of flexibility, but having that flexibility comes at the cost
+of safety. A Gremlin Server instance that is not secured appropriately provides for a big security risk.</p>
+</div>
+<div class="paragraph">
+<p>The previous sections discussed methods for securing Gremlin Server through authentication and encryption, which is a
+good first step in protection. Another layer of protection comes in the form of specific configurations for the
+<code>GremlinGroovyScriptEngine</code>.  A user can configure the script engine with different <code>CompilerCustomizerProvider</code>
 implementations.  Consider the basic configuration from the Gremlin Server YAML file:</p>
 </div>
 <div class="listingblock">
@@ -14267,11 +14302,11 @@ gremlin&gt; benchmark{
 Environment
 ===========
 * <span class="key">Groovy</span>: <span class="float">2.4</span><span class="float">.11</span>
-* <span class="key">JVM</span>: Java HotSpot(TM) <span class="integer">64</span>-Bit Server VM (<span class="float">25.121</span>-b13, Oracle Corporation)
-    * <span class="key">JRE</span>: <span class="float">1.8</span><span class="float">.0</span>_121
-    * Total <span class="key">Memory</span>: <span class="float">1619.5</span> MB
+* <span class="key">JVM</span>: Java HotSpot(TM) <span class="integer">64</span>-Bit Server VM (<span class="float">25.144</span>-b01, Oracle Corporation)
+    * <span class="key">JRE</span>: <span class="float">1.8</span><span class="float">.0</span>_144
+    * Total <span class="key">Memory</span>: <span class="integer">1615</span> MB
     * Maximum <span class="key">Memory</span>: <span class="float">3566.5</span> MB
-* <span class="key">OS</span>: Linux (<span class="float">3.13</span><span class="float">.0</span>-<span class="integer">107</span>-generic, amd64)
+* <span class="key">OS</span>: Linux (<span class="float">3.13</span><span class="float">.0</span>-<span class="integer">133</span>-generic, amd64)
 
 Options
 =======
@@ -14280,16 +14315,16 @@ Options
 
           user  system    cpu   real
 
-sugar    <span class="integer">18733</span>       <span class="integer">0</span>  <span class="integer">18733</span>  <span class="integer">18747</span>
-nosugar  <span class="integer">11058</span>       <span class="integer">0</span>  <span class="integer">11058</span>  <span class="integer">11066</span>
+sugar    <span class="integer">19394</span>       <span class="integer">0</span>  <span class="integer">19394</span>  <span class="integer">19459</span>
+nosugar  <span class="integer">10980</span>       <span class="integer">0</span>  <span class="integer">10980</span>  <span class="integer">10980</span>
 gremlin&gt; profile { g.V().iterate() }.prettyPrint()
 <span class="key">Flat</span>:
 
  %    cumulative   self            self     total    self    total   self    total
 time   seconds    seconds  calls  ms/call  ms/call  min ms  min ms  max ms  max ms  name
-<span class="float">52.6</span>        <span class="float">0.00</span>     <span class="float">0.00</span>      <span class="integer">1</span>     <span class="float">0.59</span>     <span class="float">1.13</span>    <span class="float">0.59</span>    <span class="float">1.13</span>    <span class="float">0.59</span>    <span class="float">1.13</span>  groovysh_evaluate<span class="error">$</span>_run_closure1.doCall
-<span class="float">35.9</span>        <span class="float">0.00</span>     <span class="float">0.00</span>      <span class="integer">1</span>     <span class="float">0.40</span>     <span class="float">0.40</span>    <span class="float">0.40</span>    <span class="float">0.40</span>    <span class="float">0.40</span>    <span class="float">0.40</span>  org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate
-<span class="float">11.4</span>        <span class="float">0.00</span>     <span class="float">0.00</span>      <span class="integer">1</span>     <span class="float">0.13</span>     <span class="float">0.13</span>    <span class="float">0.13</span>    <span class="float">0.13</span>    <span class="float">0.13</span>    <span class="float">0.13</span>  org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource.V
+<span class="float">48.0</span>        <span class="float">0.00</span>     <span class="float">0.00</span>      <span class="integer">1</span>     <span class="float">0.69</span>     <span class="float">0.69</span>    <span class="float">0.69</span>    <span class="float">0.69</span>    <span class="float">0.69</span>    <span class="float">0.69</span>  org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate
+<span class="float">40.0</span>        <span class="float">0.00</span>     <span class="float">0.00</span>      <span class="integer">1</span>     <span class="float">0.58</span>     <span class="float">1.45</span>    <span class="float">0.58</span>    <span class="float">1.45</span>    <span class="float">0.58</span>    <span class="float">1.45</span>  groovysh_evaluate<span class="error">$</span>_run_closure1.doCall
+<span class="float">11.8</span>        <span class="float">0.00</span>     <span class="float">0.00</span>      <span class="integer">1</span>     <span class="float">0.17</span>     <span class="float">0.17</span>    <span class="float">0.17</span>    <span class="float">0.17</span>    <span class="float">0.17</span>    <span class="float">0.17</span>  org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource.V
 
 Call <span class="key">graph</span>:
 
@@ -14300,10 +14335,10 @@ index  % time  self  children  calls  na
                <span class="float">0.00</span>      <span class="float">0.00</span>    <span class="integer">1</span>/<span class="integer">1</span>      org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource.V [<span class="integer">3</span>]
 ------------------------------------------------------------------------------------------------------------------------------------
                <span class="float">0.00</span>      <span class="float">0.00</span>    <span class="integer">1</span>/<span class="integer">1</span>      groovysh_evaluate<span class="error">$</span>_run_closure1.doCall [<span class="integer">1</span>]
-[<span class="integer">2</span>]      <span class="float">35.9</span>  <span class="float">0.00</span>      <span class="float">0.00</span>      <span class="integer">1</span>  org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate [<span class="integer">2</span>]
+[<span class="integer">2</span>]      <span class="float">48.0</span>  <span class="float">0.00</span>      <span class="float">0.00</span>      <span class="integer">1</span>  org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate [<span class="integer">2</span>]
 ------------------------------------------------------------------------------------------------------------------------------------
                <span class="float">0.00</span>      <span class="float">0.00</span>    <span class="integer">1</span>/<span class="integer">1</span>      groovysh_evaluate<span class="error">$</span>_run_closure1.doCall [<span class="integer">1</span>]
-[<span class="integer">3</span>]      <span class="float">11.4</span>  <span class="float">0.00</span>      <span class="float">0.00</span>      <span class="integer">1</span>  org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource.V [<span class="integer">3</span>]
+[<span class="integer">3</span>]      <span class="float">11.8</span>  <span class="float">0.00</span>      <span class="float">0.00</span>      <span class="integer">1</span>  org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource.V [<span class="integer">3</span>]
 ------------------------------------------------------------------------------------------------------------------------------------</code></pre>
 </div>
 </div>
@@ -14556,7 +14591,7 @@ gremlin&gt; g = graph.traversal()
 ==&gt;graphtraversalsource[tinkergraph[<span class="key">vertices</span>:<span class="integer">0</span> <span class="key">edges</span>:<span class="integer">0</span>], standard]
 gremlin&gt; graph.io(graphml()).readGraph(<span class="string"><span class="delimiter">'</span><span class="content">data/grateful-dead.xml</span><span class="delimiter">'</span></span>)
 gremlin&gt; clock(<span class="integer">1000</span>) {g.V().has(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>,<span class="string"><span class="delimiter">'</span><span class="content">Garcia</span><span class="delimiter">'</span></span>).iterate()} <span class="invisible">//</span><b class="conum">1</b><span class="invisible">\</span>
-==&gt;<span class="float">0.21746716099999996</span>
+==&gt;<span class="float">0.207900907</span>
 gremlin&gt; graph = TinkerGraph.open()
 ==&gt;tinkergraph[<span class="key">vertices</span>:<span class="integer">0</span> <span class="key">edges</span>:<span class="integer">0</span>]
 gremlin&gt; g = graph.traversal()
@@ -14564,7 +14599,7 @@ gremlin&gt; g = graph.traversal()
 gremlin&gt; graph.createIndex(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>,Vertex.class)
 gremlin&gt; graph.io(graphml()).readGraph(<span class="string"><span class="delimiter">'</span><span class="content">data/grateful-dead.xml</span><span class="delimiter">'</span></span>)
 gremlin&gt; clock(<span class="integer">1000</span>){g.V().has(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>,<span class="string"><span class="delimiter">'</span><span class="content">Garcia</span><span class="delimiter">'</span></span>).iterate()} <span class="invisible">//</span><b class="conum">2</b><span class="invisible">\</span>
-==&gt;<span class="float">0.055884296</span></code></pre>
+==&gt;<span class="float">0.055986417</span></code></pre>
 </div>
 </div>
 <div class="colist arabic">
@@ -14713,7 +14748,7 @@ gremlin&gt; g.V().properties()
 ==&gt;vp[name-&gt;gremlin]
 ==&gt;vp[name-&gt;tinkergraph]
 gremlin&gt; conf = <span class="keyword">new</span> BaseConfiguration()
-==&gt;org.apache.commons.configuration.BaseConfiguration<span class="error">@</span><span class="integer">5</span>af64ce0
+==&gt;org.apache.commons.configuration.BaseConfiguration<span class="error">@</span><span class="integer">3</span>a401749
 gremlin&gt; conf.setProperty(<span class="string"><span class="delimiter">&quot;</span><span class="content">gremlin.tinkergraph.defaultVertexPropertyCardinality</span><span class="delimiter">&quot;</span></span>,<span class="string"><span class="delimiter">&quot;</span><span class="content">list</span><span class="delimiter">&quot;</span></span>)
 gremlin&gt; graph = TinkerGraph.open(conf)
 ==&gt;tinkergraph[<span class="key">vertices</span>:<span class="integer">0</span> <span class="key">edges</span>:<span class="integer">0</span>]
@@ -14891,14 +14926,14 @@ gremlin&gt; g = graph.traversal()
 ==&gt;graphtraversalsource[neo4jgraph[Community [<span class="regexp"><span class="delimiter">/</span><span class="content">tmp</span><span class="delimiter">/</span></span>neo4j]], standard]
 gremlin&gt; g.tx().commit()

[... 424 lines stripped ...]