Michael Blow has submitted this change and it was merged. Change subject: [NO ISSUE] Pass handler to HttpServer.getExecutor ......................................................................
[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]> --- M hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/AbstractServlet.java M hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/ChunkedResponse.java M hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/FormUrlEncodedRequest.java M hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpRequestCapacityController.java M hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpRequestHandler.java M hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java M hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServerHandler.java M hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/StaticResourceServlet.java 8 files changed, 20 insertions(+), 15 deletions(-) Approvals: abdullah alamoudi: Looks good to me, approved Jenkins: Verified; ; Verified Objections: Anon. E. Moose #1000171: Jenkins: Violations found 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 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; 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 @@ * 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 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 @@ } 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; 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 @@ 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 @@ } private boolean overloaded() { - overloaded = overloaded || server.getExecutor().getQueue().remainingCapacity() == 0; + if (!overloaded) { + overloaded = server.getExecutor(null).getQueue().remainingCapacity() == 0; + } return overloaded; } } 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 @@ request.getHttpRequest().release(); } } + + public IServlet getServlet() { + return servlet; + } } 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 @@ // 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 @@ 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 @@ 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 @@ 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; } 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 @@ 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(); 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.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 { -- To view, visit https://asterix-gerrit.ics.uci.edu/2075 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: merged Gerrit-Change-Id: Iccc0f3110fa765799f93d27daa378b99b6b6d647 Gerrit-PatchSet: 4 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Michael Blow <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Michael Blow <[email protected]> Gerrit-Reviewer: Till Westmann <[email protected]> Gerrit-Reviewer: abdullah alamoudi <[email protected]>
