Repository: asterixdb Updated Branches: refs/heads/master 77f895257 -> 31aacc7be
[NO ISSUE] Pass handler to HttpServer.getExecutor Change-Id: Iccc0f3110fa765799f93d27daa378b99b6b6d647 Reviewed-on: https://asterix-gerrit.ics.uci.edu/2075 Tested-by: Jenkins <[email protected]> Contrib: Jenkins <[email protected]> Integration-Tests: Jenkins <[email protected]> Reviewed-by: abdullah alamoudi <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/31aacc7b Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/31aacc7b Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/31aacc7b Branch: refs/heads/master Commit: 31aacc7be10c7cab4c40e1e38372e915a764e512 Parents: 77f8952 Author: Michael Blow <[email protected]> Authored: Mon Oct 16 05:32:34 2017 -0400 Committer: Michael Blow <[email protected]> Committed: Mon Oct 16 09:19:49 2017 -0700 ---------------------------------------------------------------------- .../apache/hyracks/http/server/AbstractServlet.java | 1 + .../apache/hyracks/http/server/ChunkedResponse.java | 1 - .../hyracks/http/server/FormUrlEncodedRequest.java | 2 +- .../http/server/HttpRequestCapacityController.java | 8 +++++--- .../hyracks/http/server/HttpRequestHandler.java | 4 ++++ .../org/apache/hyracks/http/server/HttpServer.java | 16 ++++++++-------- .../hyracks/http/server/HttpServerHandler.java | 2 +- .../hyracks/http/server/StaticResourceServlet.java | 1 - 8 files changed, 20 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/31aacc7b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/AbstractServlet.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/AbstractServlet.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/AbstractServlet.java index baba540..d0637ca 100644 --- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/AbstractServlet.java +++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/AbstractServlet.java @@ -34,6 +34,7 @@ import org.apache.hyracks.http.server.utils.HttpUtil; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; + import io.netty.handler.codec.http.HttpHeaderNames; import io.netty.handler.codec.http.HttpMethod; import io.netty.handler.codec.http.HttpResponseStatus; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/31aacc7b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/ChunkedResponse.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/ChunkedResponse.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/ChunkedResponse.java index 47714ae..d8e9a9a 100644 --- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/ChunkedResponse.java +++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/ChunkedResponse.java @@ -52,7 +52,6 @@ import io.netty.handler.codec.http.LastHttpContent; * with headers, followed by the buffered bytes as the first chunk. * When chunking, an output buffer is allocated only when the previous buffer has been sent * If an error occurs after sending the first chunk, the connection will close abruptly. - * * Here is a breakdown of the possible cases. * 1. smaller than chunkSize, no error -> full response * 2. smaller than chunkSize, error -> full response http://git-wip-us.apache.org/repos/asf/asterixdb/blob/31aacc7b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/FormUrlEncodedRequest.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/FormUrlEncodedRequest.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/FormUrlEncodedRequest.java index 743a2c4..4609967 100644 --- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/FormUrlEncodedRequest.java +++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/FormUrlEncodedRequest.java @@ -62,7 +62,7 @@ public class FormUrlEncodedRequest extends BaseRequest implements IServletReques } protected FormUrlEncodedRequest(FullHttpRequest request, Map<String, List<String>> parameters, List<String> names, - List<String> values) { + List<String> values) { super(request, parameters); this.names = names; this.values = values; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/31aacc7b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpRequestCapacityController.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpRequestCapacityController.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpRequestCapacityController.java index e1f9e5a..13ed1fc 100644 --- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpRequestCapacityController.java +++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpRequestCapacityController.java @@ -67,8 +67,8 @@ public class HttpRequestCapacityController extends ChannelInboundHandlerAdapter HttpResponseEncoder encoder = new HttpResponseEncoder(); ChannelPromise promise = ctx.newPromise(); promise.addListener(ChannelFutureListener.CLOSE); - DefaultFullHttpResponse response = - new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.SERVICE_UNAVAILABLE); + DefaultFullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, + HttpResponseStatus.SERVICE_UNAVAILABLE); try { encoder.write(ctx, response, ctx.voidPromise()); ctx.writeAndFlush(ctx.alloc().buffer(0), promise); @@ -99,7 +99,9 @@ public class HttpRequestCapacityController extends ChannelInboundHandlerAdapter } private boolean overloaded() { - overloaded = overloaded || server.getExecutor().getQueue().remainingCapacity() == 0; + if (!overloaded) { + overloaded = server.getExecutor(null).getQueue().remainingCapacity() == 0; + } return overloaded; } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/31aacc7b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpRequestHandler.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpRequestHandler.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpRequestHandler.java index cabb01f..555f845 100644 --- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpRequestHandler.java +++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpRequestHandler.java @@ -89,4 +89,8 @@ public class HttpRequestHandler implements Callable<Void> { request.getHttpRequest().release(); } } + + public IServlet getServlet() { + return servlet; + } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/31aacc7b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java index 645bc01..d64858b 100644 --- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java +++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java @@ -49,8 +49,8 @@ public class HttpServer { // Constants private static final int LOW_WRITE_BUFFER_WATER_MARK = 8 * 1024; private static final int HIGH_WRITE_BUFFER_WATER_MARK = 32 * 1024; - protected static final WriteBufferWaterMark WRITE_BUFFER_WATER_MARK = - new WriteBufferWaterMark(LOW_WRITE_BUFFER_WATER_MARK, HIGH_WRITE_BUFFER_WATER_MARK); + protected static final WriteBufferWaterMark WRITE_BUFFER_WATER_MARK = new WriteBufferWaterMark( + LOW_WRITE_BUFFER_WATER_MARK, HIGH_WRITE_BUFFER_WATER_MARK); protected static final int RECEIVE_BUFFER_SIZE = 4096; protected static final int DEFAULT_NUM_EXECUTOR_THREADS = 16; protected static final int DEFAULT_REQUEST_QUEUE_SIZE = 256; @@ -92,8 +92,8 @@ public class HttpServer { long directMemoryBudget = numExecutorThreads * (long) HIGH_WRITE_BUFFER_WATER_MARK + numExecutorThreads * HttpServerInitializer.RESPONSE_CHUNK_SIZE; LOGGER.log(Level.INFO, "The output direct memory budget for this server is " + directMemoryBudget + " bytes"); - long inputBudgetEstimate = - (long) HttpServerInitializer.MAX_REQUEST_INITIAL_LINE_LENGTH * (requestQueueSize + numExecutorThreads); + long inputBudgetEstimate = (long) HttpServerInitializer.MAX_REQUEST_INITIAL_LINE_LENGTH + * (requestQueueSize + numExecutorThreads); inputBudgetEstimate = inputBudgetEstimate * 2; LOGGER.log(Level.INFO, "The \"estimated\" input direct memory budget for this server is " + inputBudgetEstimate + " bytes"); @@ -230,8 +230,8 @@ public class HttpServer { executor.awaitTermination(30, TimeUnit.SECONDS); if (!executor.isTerminated()) { if (LOGGER.isLoggable(Level.INFO)) { - LOGGER.log(Level.SEVERE, "Failed to shutdown http server executor; thread dump: " + - ThreadDumpUtil.takeDumpString()); + LOGGER.log(Level.SEVERE, + "Failed to shutdown http server executor; thread dump: " + ThreadDumpUtil.takeDumpString()); } else { LOGGER.log(Level.SEVERE, "Failed to shutdown http server executor"); } @@ -284,11 +284,11 @@ public class HttpServer { return b && (path.length() == cpl || '/' == path.charAt(cpl)); } - protected HttpServerHandler<HttpServer> createHttpHandler(int chunkSize) { + protected HttpServerHandler<? extends HttpServer> createHttpHandler(int chunkSize) { return new HttpServerHandler<>(this, chunkSize); } - public ThreadPoolExecutor getExecutor() { + public ThreadPoolExecutor getExecutor(HttpRequestHandler handler) { return executor; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/31aacc7b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServerHandler.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServerHandler.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServerHandler.java index 46b693b..0984ebf 100644 --- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServerHandler.java +++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServerHandler.java @@ -96,7 +96,7 @@ public class HttpServerHandler<T extends HttpServer> extends SimpleChannelInboun private void submit() throws IOException { try { - server.getExecutor().submit(handler); + server.getExecutor(handler).submit(handler); } catch (RejectedExecutionException e) { // NOSONAR LOGGER.log(Level.WARNING, "Request rejected by server executor service. " + e.getMessage()); handler.reject(); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/31aacc7b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/StaticResourceServlet.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/StaticResourceServlet.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/StaticResourceServlet.java index 4d564ba..b21e533 100644 --- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/StaticResourceServlet.java +++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/StaticResourceServlet.java @@ -30,7 +30,6 @@ import org.apache.hyracks.http.api.IServletRequest; import org.apache.hyracks.http.api.IServletResponse; import org.apache.hyracks.http.server.utils.HttpUtil; -import io.netty.handler.codec.http.HttpMethod; import io.netty.handler.codec.http.HttpResponseStatus; public class StaticResourceServlet extends AbstractServlet {
