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

asterixdb git commit: [NO ISSUE] Pass handler to HttpServer.getExecutor

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 <je...@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <je...@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: abdullah alamoudi <ba...@gmail.com>


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 <mi...@couchbase.com>
Authored: Mon Oct 16 05:32:34 2017 -0400
Committer: Michael Blow <mb...@apache.org>
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 {