Commit d34095cf authored by Tatsuhiro Tsujikawa's avatar Tatsuhiro Tsujikawa

nghttpx: Pin HTTP/2 upstream to one Http2Session to improve performance

parent 6039bacb
...@@ -363,6 +363,7 @@ ClientHandler::ClientHandler(Worker *worker, int fd, SSL *ssl, ...@@ -363,6 +363,7 @@ ClientHandler::ClientHandler(Worker *worker, int fd, SSL *ssl,
get_config()->write_burst, get_config()->read_rate, get_config()->write_burst, get_config()->read_rate,
get_config()->read_burst, writecb, readcb, timeoutcb, this), get_config()->read_burst, writecb, readcb, timeoutcb, this),
ipaddr_(ipaddr), port_(port), worker_(worker), ipaddr_(ipaddr), port_(port), worker_(worker),
http2session_(worker_->next_http2_session()),
left_connhd_len_(NGHTTP2_CLIENT_CONNECTION_PREFACE_LEN), left_connhd_len_(NGHTTP2_CLIENT_CONNECTION_PREFACE_LEN),
should_close_after_write_(false) { should_close_after_write_(false) {
...@@ -608,10 +609,9 @@ ClientHandler::get_downstream_connection() { ...@@ -608,10 +609,9 @@ ClientHandler::get_downstream_connection() {
} }
auto dconn_pool = worker_->get_dconn_pool(); auto dconn_pool = worker_->get_dconn_pool();
auto http2session = worker_->next_http2_session();
if (http2session) { if (http2session_) {
dconn = make_unique<Http2DownstreamConnection>(dconn_pool, http2session); dconn = make_unique<Http2DownstreamConnection>(dconn_pool, http2session_);
} else { } else {
dconn = make_unique<HttpDownstreamConnection>(dconn_pool, conn_.loop); dconn = make_unique<HttpDownstreamConnection>(dconn_pool, conn_.loop);
} }
......
...@@ -139,6 +139,7 @@ private: ...@@ -139,6 +139,7 @@ private:
std::function<int(ClientHandler &)> read_, write_; std::function<int(ClientHandler &)> read_, write_;
std::function<int(ClientHandler &)> on_read_, on_write_; std::function<int(ClientHandler &)> on_read_, on_write_;
Worker *worker_; Worker *worker_;
Http2Session *http2session_;
// The number of bytes of HTTP/2 client connection header to read // The number of bytes of HTTP/2 client connection header to read
size_t left_connhd_len_; size_t left_connhd_len_;
bool should_close_after_write_; bool should_close_after_write_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment