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 2015/04/20 15:56:27 UTC
incubator-tinkerpop git commit: Reduce object creation in Gremlin
Server by using voidPromise.
Repository: incubator-tinkerpop
Updated Branches:
refs/heads/master d3a04e46e -> 107e26500
Reduce object creation in Gremlin Server by using voidPromise.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/107e2650
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/107e2650
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/107e2650
Branch: refs/heads/master
Commit: 107e26500c91caf2172bd54817cd506b58821edc
Parents: d3a04e4
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Mon Apr 20 09:56:08 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Mon Apr 20 09:56:08 2015 -0400
----------------------------------------------------------------------
.../handler/HttpGremlinEndpointHandler.java | 4 ++--
.../gremlin/server/handler/IteratorHandler.java | 6 +++---
.../handler/NioGremlinResponseEncoder.java | 20 +++++++++---------
.../server/handler/OpExecutorHandler.java | 6 +++---
.../server/handler/OpSelectorHandler.java | 6 +++---
.../handler/WsGremlinResponseEncoder.java | 22 ++++++++++----------
6 files changed, 32 insertions(+), 32 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/107e2650/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java
index 67e81c2..3d6368b 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java
@@ -113,7 +113,7 @@ public class HttpGremlinEndpointHandler extends ChannelInboundHandlerAdapter {
final FullHttpRequest req = (FullHttpRequest) msg;
if (is100ContinueExpected(req)) {
- ctx.write(new DefaultFullHttpResponse(HTTP_1_1, CONTINUE));
+ ctx.write(new DefaultFullHttpResponse(HTTP_1_1, CONTINUE), ctx.voidPromise());
}
if (req.getMethod() != GET && req.getMethod() != POST) {
@@ -168,7 +168,7 @@ public class HttpGremlinEndpointHandler extends ChannelInboundHandlerAdapter {
ctx.writeAndFlush(response).addListener(ChannelFutureListener.CLOSE);
} else {
response.headers().set(CONNECTION, HttpHeaders.Values.KEEP_ALIVE);
- ctx.writeAndFlush(response);
+ ctx.writeAndFlush(response, ctx.voidPromise());
}
}
});
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/107e2650/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/IteratorHandler.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/IteratorHandler.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/IteratorHandler.java
index cdb7975..b957bae 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/IteratorHandler.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/IteratorHandler.java
@@ -87,7 +87,7 @@ public class IteratorHandler extends ChannelOutboundHandlerAdapter {
if (aggregate.size() == resultIterationBatchSize || !itty.hasNext()) {
ctx.writeAndFlush(ResponseMessage.build(requestMessage)
.code(ResponseStatusCode.SUCCESS)
- .result(aggregate).create());
+ .result(aggregate).create(), ctx.voidPromise());
aggregate = new ArrayList<>(resultIterationBatchSize);
}
@@ -107,10 +107,10 @@ public class IteratorHandler extends ChannelOutboundHandlerAdapter {
if (!f.isSuccess()) {
final String errorMessage = String.format("Response iteration and serialization exceeded the configured threshold for request [%s] - %s", msg, f.cause().getMessage());
logger.warn(errorMessage);
- ctx.writeAndFlush(ResponseMessage.build(requestMessage).code(ResponseStatusCode.SERVER_ERROR_TIMEOUT).statusMessage(errorMessage).create());
+ ctx.writeAndFlush(ResponseMessage.build(requestMessage).code(ResponseStatusCode.SERVER_ERROR_TIMEOUT).statusMessage(errorMessage).create(), ctx.voidPromise());
}
- ctx.writeAndFlush(ResponseMessage.build(requestMessage).code(ResponseStatusCode.SUCCESS_TERMINATOR).create());
+ ctx.writeAndFlush(ResponseMessage.build(requestMessage).code(ResponseStatusCode.SUCCESS_TERMINATOR).create(), ctx.voidPromise());
});
} finally {
ReferenceCountUtil.release(msg);
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/107e2650/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/NioGremlinResponseEncoder.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/NioGremlinResponseEncoder.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/NioGremlinResponseEncoder.java
index 9670216..0e6a9c0 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/NioGremlinResponseEncoder.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/NioGremlinResponseEncoder.java
@@ -46,18 +46,18 @@ public class NioGremlinResponseEncoder extends MessageToByteEncoder<ResponseMess
private static final Charset UTF8 = Charset.forName("UTF-8");
@Override
- protected void encode(final ChannelHandlerContext channelHandlerContext, final ResponseMessage responseMessage, final ByteBuf byteBuf) throws Exception {
- final MessageSerializer serializer = channelHandlerContext.channel().attr(StateKey.SERIALIZER).get();
- final boolean useBinary = channelHandlerContext.channel().attr(StateKey.USE_BINARY).get();
+ protected void encode(final ChannelHandlerContext ctx, final ResponseMessage responseMessage, final ByteBuf byteBuf) throws Exception {
+ final MessageSerializer serializer = ctx.channel().attr(StateKey.SERIALIZER).get();
+ final boolean useBinary = ctx.channel().attr(StateKey.USE_BINARY).get();
try {
if (useBinary) {
if (responseMessage.getStatus().getCode().isSuccess())
- byteBuf.writeBytes(serializer.serializeResponseAsBinary(responseMessage, channelHandlerContext.alloc()));
+ byteBuf.writeBytes(serializer.serializeResponseAsBinary(responseMessage, ctx.alloc()));
else {
- byteBuf.writeBytes(serializer.serializeResponseAsBinary(responseMessage, channelHandlerContext.alloc()));
+ byteBuf.writeBytes(serializer.serializeResponseAsBinary(responseMessage, ctx.alloc()));
final ResponseMessage terminator = ResponseMessage.build(responseMessage.getRequestId()).code(ResponseStatusCode.SUCCESS_TERMINATOR).create();
- byteBuf.writeBytes(serializer.serializeResponseAsBinary(terminator, channelHandlerContext.alloc()));
+ byteBuf.writeBytes(serializer.serializeResponseAsBinary(terminator, ctx.alloc()));
errorMeter.mark();
}
} else {
@@ -82,14 +82,14 @@ public class NioGremlinResponseEncoder extends MessageToByteEncoder<ResponseMess
.statusMessage(errorMessage)
.code(ResponseStatusCode.SERVER_ERROR_SERIALIZATION).create();
if (useBinary) {
- channelHandlerContext.write(serializer.serializeResponseAsBinary(error, channelHandlerContext.alloc()));
+ ctx.write(serializer.serializeResponseAsBinary(error, ctx.alloc()), ctx.voidPromise());
final ResponseMessage terminator = ResponseMessage.build(responseMessage.getRequestId()).code(ResponseStatusCode.SUCCESS_TERMINATOR).create();
- channelHandlerContext.writeAndFlush(serializer.serializeResponseAsBinary(terminator, channelHandlerContext.alloc()));
+ ctx.writeAndFlush(serializer.serializeResponseAsBinary(terminator, ctx.alloc()), ctx.voidPromise());
} else {
final MessageTextSerializer textSerializer = (MessageTextSerializer) serializer;
- channelHandlerContext.write(textSerializer.serializeResponseAsString(error));
+ ctx.write(textSerializer.serializeResponseAsString(error), ctx.voidPromise());
final ResponseMessage terminator = ResponseMessage.build(responseMessage.getRequestId()).code(ResponseStatusCode.SUCCESS_TERMINATOR).create();
- channelHandlerContext.writeAndFlush(textSerializer.serializeResponseAsString(terminator));
+ ctx.writeAndFlush(textSerializer.serializeResponseAsString(terminator), ctx.voidPromise());
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/107e2650/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/OpExecutorHandler.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/OpExecutorHandler.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/OpExecutorHandler.java
index 2a042ca..2850aa2 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/OpExecutorHandler.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/OpExecutorHandler.java
@@ -56,10 +56,10 @@ public class OpExecutorHandler extends SimpleChannelInboundHandler<Pair<RequestM
}
@Override
- protected void channelRead0(final ChannelHandlerContext channelHandlerContext, final Pair<RequestMessage, ThrowingConsumer<Context>> objects) throws Exception {
+ protected void channelRead0(final ChannelHandlerContext ctx, final Pair<RequestMessage, ThrowingConsumer<Context>> objects) throws Exception {
final RequestMessage msg = objects.getValue0();
final ThrowingConsumer<Context> op = objects.getValue1();
- final Context gremlinServerContext = new Context(msg, channelHandlerContext,
+ final Context gremlinServerContext = new Context(msg, ctx,
settings, graphs, gremlinExecutor, scheduledExecutorService);
try {
@@ -68,7 +68,7 @@ public class OpExecutorHandler extends SimpleChannelInboundHandler<Pair<RequestM
// Ops may choose to throw OpProcessorException or write the error ResponseMessage down the line
// themselves
logger.warn(ope.getMessage(), ope);
- channelHandlerContext.writeAndFlush(ope.getResponseMessage());
+ ctx.writeAndFlush(ope.getResponseMessage(), ctx.voidPromise());
} finally {
ReferenceCountUtil.release(objects);
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/107e2650/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/OpSelectorHandler.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/OpSelectorHandler.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/OpSelectorHandler.java
index dca348a..7323623 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/OpSelectorHandler.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/OpSelectorHandler.java
@@ -67,9 +67,9 @@ public class OpSelectorHandler extends MessageToMessageDecoder<RequestMessage> {
}
@Override
- protected void decode(final ChannelHandlerContext channelHandlerContext, final RequestMessage msg,
+ protected void decode(final ChannelHandlerContext ctx, final RequestMessage msg,
final List<Object> objects) throws Exception {
- final Context gremlinServerContext = new Context(msg, channelHandlerContext, settings,
+ final Context gremlinServerContext = new Context(msg, ctx, settings,
graphs, gremlinExecutor, this.scheduledExecutorService);
try {
// choose a processor to do the work based on the request message.
@@ -86,7 +86,7 @@ public class OpSelectorHandler extends MessageToMessageDecoder<RequestMessage> {
} catch (OpProcessorException ope) {
errorMeter.mark();
logger.warn(ope.getMessage(), ope);
- channelHandlerContext.writeAndFlush(ope.getResponseMessage());
+ ctx.writeAndFlush(ope.getResponseMessage(), ctx.voidPromise());
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/107e2650/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinResponseEncoder.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinResponseEncoder.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinResponseEncoder.java
index 5967311..44731bb 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinResponseEncoder.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinResponseEncoder.java
@@ -48,10 +48,10 @@ public class WsGremlinResponseEncoder extends MessageToMessageEncoder<ResponseMe
static final Meter errorMeter = MetricManager.INSTANCE.getMeter(name(GremlinServer.class, "errors"));
@Override
- protected void encode(final ChannelHandlerContext channelHandlerContext, final ResponseMessage o, final List<Object> objects) throws Exception {
- final MessageSerializer serializer = channelHandlerContext.channel().attr(StateKey.SERIALIZER).get();
- final boolean useBinary = channelHandlerContext.channel().attr(StateKey.USE_BINARY).get();
- final Session session = channelHandlerContext.channel().attr(StateKey.SESSION).get();
+ protected void encode(final ChannelHandlerContext ctx, final ResponseMessage o, final List<Object> objects) throws Exception {
+ final MessageSerializer serializer = ctx.channel().attr(StateKey.SERIALIZER).get();
+ final boolean useBinary = ctx.channel().attr(StateKey.USE_BINARY).get();
+ final Session session = ctx.channel().attr(StateKey.SESSION).get();
try {
if (useBinary) {
@@ -59,16 +59,16 @@ public class WsGremlinResponseEncoder extends MessageToMessageEncoder<ResponseMe
// if the request came in on a session then the serialization must occur in that same thread.
if (null == session)
- serialized = serializer.serializeResponseAsBinary(o, channelHandlerContext.alloc());
+ serialized = serializer.serializeResponseAsBinary(o, ctx.alloc());
else
- serialized = session.getExecutor().submit(() -> serializer.serializeResponseAsBinary(o, channelHandlerContext.alloc())).get();
+ serialized = session.getExecutor().submit(() -> serializer.serializeResponseAsBinary(o, ctx.alloc())).get();
if (o.getStatus().getCode().isSuccess())
objects.add(new BinaryWebSocketFrame(serialized));
else {
objects.add(new BinaryWebSocketFrame(serialized));
final ResponseMessage terminator = ResponseMessage.build(o.getRequestId()).code(ResponseStatusCode.SUCCESS_TERMINATOR).create();
- objects.add(new BinaryWebSocketFrame(serializer.serializeResponseAsBinary(terminator, channelHandlerContext.alloc())));
+ objects.add(new BinaryWebSocketFrame(serializer.serializeResponseAsBinary(terminator, ctx.alloc())));
errorMeter.mark();
}
} else {
@@ -102,14 +102,14 @@ public class WsGremlinResponseEncoder extends MessageToMessageEncoder<ResponseMe
.statusMessage(errorMessage)
.code(ResponseStatusCode.SERVER_ERROR_SERIALIZATION).create();
if (useBinary) {
- channelHandlerContext.write(new BinaryWebSocketFrame(serializer.serializeResponseAsBinary(error, channelHandlerContext.alloc())));
+ ctx.write(new BinaryWebSocketFrame(serializer.serializeResponseAsBinary(error, ctx.alloc())), ctx.voidPromise());
final ResponseMessage terminator = ResponseMessage.build(o.getRequestId()).code(ResponseStatusCode.SUCCESS_TERMINATOR).create();
- channelHandlerContext.writeAndFlush(new BinaryWebSocketFrame(serializer.serializeResponseAsBinary(terminator, channelHandlerContext.alloc())));
+ ctx.writeAndFlush(new BinaryWebSocketFrame(serializer.serializeResponseAsBinary(terminator, ctx.alloc())), ctx.voidPromise());
} else {
final MessageTextSerializer textSerializer = (MessageTextSerializer) serializer;
- channelHandlerContext.write(new TextWebSocketFrame(textSerializer.serializeResponseAsString(error)));
+ ctx.write(new TextWebSocketFrame(textSerializer.serializeResponseAsString(error)), ctx.voidPromise());
final ResponseMessage terminator = ResponseMessage.build(o.getRequestId()).code(ResponseStatusCode.SUCCESS_TERMINATOR).create();
- channelHandlerContext.writeAndFlush(new TextWebSocketFrame(textSerializer.serializeResponseAsString(terminator)));
+ ctx.writeAndFlush(new TextWebSocketFrame(textSerializer.serializeResponseAsString(terminator)), ctx.voidPromise());
}
}
}