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 2016/08/05 12:16:41 UTC

tinkerpop git commit: Factored out BulkedResult and used RemoteTraverser.

Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1278 e69d707e4 -> 13f2a1423


Factored out BulkedResult and used RemoteTraverser.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/13f2a142
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/13f2a142
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/13f2a142

Branch: refs/heads/TINKERPOP-1278
Commit: 13f2a1423b4635aa53d372a582b9325d7c1c428f
Parents: e69d707
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Aug 5 08:13:56 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Aug 5 08:13:56 2016 -0400

----------------------------------------------------------------------
 .../traversal/RemoteTraverserSerializers.java   | 49 ++++++++++++++++++++
 .../traversal/step/util/BulkedResult.java       | 42 -----------------
 .../step/util/BulkedResultSerializers.java      | 47 -------------------
 .../gremlin/structure/io/gryo/GryoMapper.java   |  6 +--
 .../structure/io/gryo/GryoMapperTest.java       | 10 ++--
 .../tinkerpop/gremlin/driver/Handler.java       |  9 +---
 .../tinkerpop/gremlin/driver/ResultQueue.java   |  8 ++--
 .../driver/remote/DriverRemoteResponse.java     |  4 +-
 .../gremlin/driver/ResultQueueTest.java         | 14 +++---
 .../gremlin/server/util/TraversalIterator.java  |  6 +--
 .../server/GremlinResultSetIntegrateTest.java   |  4 +-
 11 files changed, 75 insertions(+), 124 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/13f2a142/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/RemoteTraverserSerializers.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/RemoteTraverserSerializers.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/RemoteTraverserSerializers.java
new file mode 100644
index 0000000..d65ce37
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/RemoteTraverserSerializers.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tinkerpop.gremlin.process.remote.traversal;
+
+import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.InputShim;
+import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.KryoShim;
+import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.OutputShim;
+import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.SerializerShim;
+
+/**
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+public final class RemoteTraverserSerializers {
+
+    private RemoteTraverserSerializers() {}
+
+    /**
+     * Serializes {@link RemoteTraverser} to and from Gryo.
+     */
+    public final static class GryoSerializer implements SerializerShim<RemoteTraverser> {
+        @Override
+        public <O extends OutputShim> void write(final KryoShim<?, O> kryo, final O output, final RemoteTraverser remoteTraverser) {
+            kryo.writeClassAndObject(output, remoteTraverser.get());
+            output.writeLong(remoteTraverser.bulk());
+        }
+
+        @Override
+        public <I extends InputShim> RemoteTraverser read(final KryoShim<I, ?> kryo, final I input, final Class<RemoteTraverser> remoteTraverserClass) {
+            final Object o = kryo.readClassAndObject(input);
+            return new RemoteTraverser<>(o, input.readLong());
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/13f2a142/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/util/BulkedResult.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/util/BulkedResult.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/util/BulkedResult.java
deleted file mode 100644
index 1a4eaa9..0000000
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/util/BulkedResult.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tinkerpop.gremlin.process.remote.traversal.step.util;
-
-/**
- * A generic representation of a "bulk" for purpose of remoting results.
- *
- * @author Stephen Mallette (http://stephen.genoprime.com)
- */
-public class BulkedResult<T> {
-    private final T result;
-    private final long bulk;
-
-    public BulkedResult(final T result, final long bulk) {
-        this.result = result;
-        this.bulk = bulk;
-    }
-
-    public T getResult() {
-        return result;
-    }
-
-    public long getBulk() {
-        return bulk;
-    }
-}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/13f2a142/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/util/BulkedResultSerializers.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/util/BulkedResultSerializers.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/util/BulkedResultSerializers.java
deleted file mode 100644
index 939d17f..0000000
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/util/BulkedResultSerializers.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tinkerpop.gremlin.process.remote.traversal.step.util;
-
-import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.InputShim;
-import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.KryoShim;
-import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.OutputShim;
-import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.SerializerShim;
-
-/**
- * @author Stephen Mallette (http://stephen.genoprime.com)
- */
-public final class BulkedResultSerializers {
-
-    /**
-     * Serializes {@link BulkedResult} to and from Gryo.
-     */
-    public final static class BulkedResultGryoSerializer implements SerializerShim<BulkedResult> {
-        @Override
-        public <O extends OutputShim> void write(final KryoShim<?, O> kryo, final O output, final BulkedResult bulkedResult) {
-            kryo.writeClassAndObject(output, bulkedResult.getResult());
-            output.writeLong(bulkedResult.getBulk());
-        }
-
-        @Override
-        public <I extends InputShim> BulkedResult read(final KryoShim<I, ?> kryo, final I input, final Class<BulkedResult> bulkedResultClass) {
-            final Object o = kryo.readClassAndObject(input);
-            return new BulkedResult(o, input.readLong());
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/13f2a142/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapper.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapper.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapper.java
index caebc82..83fe89a 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapper.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapper.java
@@ -22,8 +22,8 @@ import org.apache.commons.lang.builder.ToStringBuilder;
 import org.apache.tinkerpop.gremlin.process.computer.GraphFilter;
 import org.apache.tinkerpop.gremlin.process.computer.MapReduce;
 import org.apache.tinkerpop.gremlin.process.computer.util.MapMemory;
-import org.apache.tinkerpop.gremlin.process.remote.traversal.step.util.BulkedResult;
-import org.apache.tinkerpop.gremlin.process.remote.traversal.step.util.BulkedResultSerializers;
+import org.apache.tinkerpop.gremlin.process.remote.traversal.RemoteTraverser;
+import org.apache.tinkerpop.gremlin.process.remote.traversal.RemoteTraverserSerializers;
 import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
 import org.apache.tinkerpop.gremlin.process.traversal.Contains;
 import org.apache.tinkerpop.gremlin.process.traversal.Operator;
@@ -323,9 +323,9 @@ public final class GryoMapper implements Mapper<Kryo> {
             add(GryoTypeReg.of(O_OB_S_SE_SL_Traverser.class, 89));
             add(GryoTypeReg.of(LP_O_OB_S_SE_SL_Traverser.class, 90));
             add(GryoTypeReg.of(LP_O_OB_P_S_SE_SL_Traverser.class, 91));
+            add(GryoTypeReg.of(RemoteTraverser.class, 123, new RemoteTraverserSerializers.GryoSerializer()));  // ***LAST ID***
 
             add(GryoTypeReg.of(Bytecode.class, 122, new GryoSerializers.BytecodeSerializer()));
-            add(GryoTypeReg.of(BulkedResult.class, 123, new BulkedResultSerializers.BulkedResultGryoSerializer()));  // ***LAST ID***
 
             add(GryoTypeReg.of(TraverserSet.class, 58));
             add(GryoTypeReg.of(Tree.class, 61));

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/13f2a142/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapperTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapperTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapperTest.java
index 4c06800..1c7535b 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapperTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapperTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.structure.io.gryo;
 
-import org.apache.tinkerpop.gremlin.process.remote.traversal.step.util.BulkedResult;
+import org.apache.tinkerpop.gremlin.process.remote.traversal.RemoteTraverser;
 import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalExplanation;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
@@ -242,10 +242,10 @@ public class GryoMapperTest {
 
     @Test
     public void shouldHandleBulkedResult() throws Exception  {
-        final BulkedResult<Integer> br = new BulkedResult<>(123, 1000);
-        final BulkedResult inOut = serializeDeserialize(br, BulkedResult.class);
-        assertEquals(br.getBulk(), inOut.getBulk());
-        assertEquals(br.getResult(), inOut.getResult());
+        final RemoteTraverser<Integer> br = new RemoteTraverser<>(123, 1000);
+        final RemoteTraverser inOut = serializeDeserialize(br, RemoteTraverser.class);
+        assertEquals(br.bulk(), inOut.bulk());
+        assertEquals(br.get(), inOut.get());
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/13f2a142/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Handler.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Handler.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Handler.java
index 489c97f..c9f838a 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Handler.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Handler.java
@@ -29,7 +29,6 @@ import io.netty.util.Attribute;
 import io.netty.util.AttributeKey;
 import io.netty.util.ReferenceCountUtil;
 import org.apache.tinkerpop.gremlin.driver.ser.SerializationException;
-import org.apache.tinkerpop.gremlin.process.remote.traversal.step.util.BulkedResult;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -231,13 +230,7 @@ final class Handler {
 
         private void tryUnrollBulkedResult(final ResultQueue queue, final Object item) {
             if (unrollTraversers) {
-                if (item instanceof BulkedResult) {
-                    final BulkedResult t = (BulkedResult) item;
-                    final Object result = t.getResult();
-                    for (long ix = 0; ix < t.getBulk(); ix++) {
-                        queue.add(new Result(result));
-                    }
-                } else if (item instanceof Traverser.Admin) {
+                if (item instanceof Traverser.Admin) {
                     // TODO: i think this is just temporary code - needed for backward compatibility to the old way of serializing Traversal with java serialization
                     final Traverser.Admin t = (Traverser.Admin) item;
                     final Object result = t.get();

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/13f2a142/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ResultQueue.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ResultQueue.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ResultQueue.java
index 28d40b6..490b3f7 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ResultQueue.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ResultQueue.java
@@ -19,8 +19,8 @@
 package org.apache.tinkerpop.gremlin.driver;
 
 import org.apache.tinkerpop.gremlin.driver.message.ResponseMessage;
-import org.apache.tinkerpop.gremlin.process.remote.traversal.step.util.BulkedResult;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
+import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
 import org.javatuples.Pair;
 
@@ -83,7 +83,7 @@ final class ResultQueue {
     public void addSideEffect(final String k, final String aggregateTo, final Object sideEffectValue) {
         switch (aggregateTo) {
             case Tokens.VAL_AGGREGATE_TO_BULKSET:
-                if (!(sideEffectValue instanceof BulkedResult))
+                if (!(sideEffectValue instanceof Traverser.Admin))
                     throw new IllegalStateException(String.format("Side-effect \"%s\" value %s is a %s which does not aggregate to %s",
                             k, sideEffectValue, sideEffectValue.getClass().getSimpleName(), aggregateTo));
 
@@ -91,8 +91,8 @@ final class ResultQueue {
                     putIfAbsent(k, new BulkSet());
 
                 final BulkSet<Object> bs = validateAndGet(k, aggregateTo, BulkSet.class);
-                final BulkedResult bulkedResult = (BulkedResult) sideEffectValue;
-                bs.add(bulkedResult.getResult(), bulkedResult.getBulk());
+                final Traverser.Admin traverser = (Traverser.Admin) sideEffectValue;
+                bs.add(traverser.get(), traverser.bulk());
                 break;
             case Tokens.VAL_AGGREGATE_TO_LIST:
                 if (!sideEffectResult.containsKey(k))

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/13f2a142/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteResponse.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteResponse.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteResponse.java
index 1618ab6..75a4e26 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteResponse.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteResponse.java
@@ -23,7 +23,6 @@ import org.apache.tinkerpop.gremlin.driver.Result;
 import org.apache.tinkerpop.gremlin.driver.ResultSet;
 import org.apache.tinkerpop.gremlin.process.remote.RemoteResponse;
 import org.apache.tinkerpop.gremlin.process.remote.traversal.RemoteTraverser;
-import org.apache.tinkerpop.gremlin.process.remote.traversal.step.util.BulkedResult;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSideEffects;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.structure.Element;
@@ -85,8 +84,7 @@ public class DriverRemoteResponse<E> implements RemoteResponse<E> {
 
         @Override
         public Traverser.Admin<E> next() {
-            final BulkedResult<E> br = (BulkedResult) inner.next().getObject();
-            return new RemoteTraverser<>(br.getResult(), br.getBulk());
+            return (RemoteTraverser<E>) inner.next().getObject();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/13f2a142/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ResultQueueTest.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ResultQueueTest.java b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ResultQueueTest.java
index 37190d5..7523e79 100644
--- a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ResultQueueTest.java
+++ b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ResultQueueTest.java
@@ -19,7 +19,7 @@
 package org.apache.tinkerpop.gremlin.driver;
 
 import org.apache.commons.lang.exception.ExceptionUtils;
-import org.apache.tinkerpop.gremlin.process.remote.traversal.step.util.BulkedResult;
+import org.apache.tinkerpop.gremlin.process.remote.traversal.RemoteTraverser;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
 import org.junit.Test;
 
@@ -299,19 +299,19 @@ public class ResultQueueTest extends AbstractResultQueueTest {
     public void shouldHandleBulkSetSideEffects() {
         assertThat(resultQueue.getSideEffectKeys().isEmpty(), is(true));
 
-        resultQueue.addSideEffect("a", Tokens.VAL_AGGREGATE_TO_BULKSET, new BulkedResult("stephen", 1));
+        resultQueue.addSideEffect("a", Tokens.VAL_AGGREGATE_TO_BULKSET, new RemoteTraverser<>("stephen", 1));
         assertThat(resultQueue.getSideEffectKeys(), hasItem("a"));
         assertEquals(1, ((BulkSet) resultQueue.getSideEffect("a")).get("stephen"));
 
-        resultQueue.addSideEffect("b", Tokens.VAL_AGGREGATE_TO_BULKSET, new BulkedResult("brian", 2));
+        resultQueue.addSideEffect("b", Tokens.VAL_AGGREGATE_TO_BULKSET, new RemoteTraverser<>("brian", 2));
         assertThat(resultQueue.getSideEffectKeys(), hasItem("b"));
         assertEquals(2, ((BulkSet) resultQueue.getSideEffect("b")).get("brian"));
 
-        resultQueue.addSideEffect("b", Tokens.VAL_AGGREGATE_TO_BULKSET, new BulkedResult("brian", 2));
+        resultQueue.addSideEffect("b", Tokens.VAL_AGGREGATE_TO_BULKSET, new RemoteTraverser<>("brian", 2));
         assertThat(resultQueue.getSideEffectKeys(), hasItem("b"));
         assertEquals(4, ((BulkSet) resultQueue.getSideEffect("b")).get("brian"));
 
-        resultQueue.addSideEffect("b", Tokens.VAL_AGGREGATE_TO_BULKSET, new BulkedResult("belinda", 6));
+        resultQueue.addSideEffect("b", Tokens.VAL_AGGREGATE_TO_BULKSET, new RemoteTraverser<>("belinda", 6));
         assertThat(resultQueue.getSideEffectKeys(), hasItem("b"));
         assertEquals(6, ((BulkSet) resultQueue.getSideEffect("b")).get("belinda"));
 
@@ -321,7 +321,7 @@ public class ResultQueueTest extends AbstractResultQueueTest {
     public void shouldNotMixAggregatesForBulkSet() {
         assertThat(resultQueue.getSideEffectKeys().isEmpty(), is(true));
 
-        resultQueue.addSideEffect("a", Tokens.VAL_AGGREGATE_TO_BULKSET, new BulkedResult("stephen", 1));
+        resultQueue.addSideEffect("a", Tokens.VAL_AGGREGATE_TO_BULKSET, new RemoteTraverser<>("stephen", 1));
         assertThat(resultQueue.getSideEffectKeys(), hasItem("a"));
         assertEquals(1, ((BulkSet) resultQueue.getSideEffect("a")).get("stephen"));
 
@@ -360,7 +360,7 @@ public class ResultQueueTest extends AbstractResultQueueTest {
     public void shouldNotMixAggregatesForList() {
         assertThat(resultQueue.getSideEffectKeys().isEmpty(), is(true));
 
-        resultQueue.addSideEffect("a", Tokens.VAL_AGGREGATE_TO_BULKSET, new BulkedResult("stephen", 1));
+        resultQueue.addSideEffect("a", Tokens.VAL_AGGREGATE_TO_BULKSET, new RemoteTraverser<>("stephen", 1));
         assertThat(resultQueue.getSideEffectKeys(), hasItem("a"));
         assertEquals(1, ((BulkSet) resultQueue.getSideEffect("a")).get("stephen"));
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/13f2a142/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/util/TraversalIterator.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/util/TraversalIterator.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/util/TraversalIterator.java
index 9e37686..3027d8b 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/util/TraversalIterator.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/util/TraversalIterator.java
@@ -19,7 +19,7 @@
 package org.apache.tinkerpop.gremlin.server.util;
 
 import org.apache.tinkerpop.gremlin.driver.Tokens;
-import org.apache.tinkerpop.gremlin.process.remote.traversal.step.util.BulkedResult;
+import org.apache.tinkerpop.gremlin.process.remote.traversal.RemoteTraverser;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
@@ -90,7 +90,7 @@ public class TraversalIterator implements Iterator<Object> {
         // first iterate the traversal end step
         if (traversalIterator.hasNext()) {
             final Traverser.Admin t = this.haltedTraverserStrategy.halt((Traverser.Admin) traversalIterator.next());
-            next = new BulkedResult(t.get(), t.bulk());
+            next = new RemoteTraverser<>(t.get(), t.bulk());
 
             // since there are no items left in the "result" then get the side-effect keys iterator
             if (!traversalIterator.hasNext())
@@ -149,7 +149,7 @@ public class TraversalIterator implements Iterator<Object> {
         @Override
         public Object next() {
             final Map.Entry<Object, Long> entry = itty.next();
-            return new BulkedResult(entry.getKey(), entry.getValue());
+            return new RemoteTraverser<>(entry.getKey(), entry.getValue());
         }
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/13f2a142/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
index 956a87c..d8abce1 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
@@ -25,7 +25,7 @@ import org.apache.tinkerpop.gremlin.driver.Result;
 import org.apache.tinkerpop.gremlin.driver.ResultSet;
 import org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0;
 import org.apache.tinkerpop.gremlin.driver.ser.Serializers;
-import org.apache.tinkerpop.gremlin.process.remote.traversal.step.util.BulkedResult;
+import org.apache.tinkerpop.gremlin.process.remote.traversal.RemoteTraverser;
 import org.apache.tinkerpop.gremlin.process.traversal.Path;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
 import org.apache.tinkerpop.gremlin.structure.Edge;
@@ -125,7 +125,7 @@ public class GremlinResultSetIntegrateTest extends AbstractGremlinServerIntegrat
         final ResultSet resultSet = aliased.submit(g.V().both().barrier().both().barrier());
         final List<Result> results = resultSet.all().get();
 
-        assertThat(results.get(0).getObject(), CoreMatchers.instanceOf(BulkedResult.class));
+        assertThat(results.get(0).getObject(), CoreMatchers.instanceOf(RemoteTraverser.class));
         assertEquals(6, results.size());
 
         aliased.close();