Michael Blow has uploaded a new change for review.
https://asterix-gerrit.ics.uci.edu/2075
Change subject: [NO ISSUE] Pass handler to HttpServer.getExecutor
......................................................................
[NO ISSUE] Pass handler to HttpServer.getExecutor
Change-Id: Iccc0f3110fa765799f93d27daa378b99b6b6d647
---
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, 19 insertions(+), 14 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/75/2075/1
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..eb90fdd 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..0bd880c 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");
}
@@ -288,7 +288,7 @@
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: newchange
Gerrit-Change-Id: Iccc0f3110fa765799f93d27daa378b99b6b6d647
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Michael Blow <[email protected]>