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 {