Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(36)

Issue 8586015: Slow start pipelining. (Closed)

Created:
9 years, 1 month ago by James Simonsen
Modified:
9 years ago
CC:
chromium-reviews, cbentzel+watch_chromium.org, darin-cc_chromium.org, Paweł Hajdan Jr.
Visibility:
Public.

Description

Slow start pipelining. We need to wait for an HTTP/1.1 keep-alive response before we try to pipeline. Notably, this fixes wordpress.com and techcrunch.com. Remember which hosts clearly support, or don't support pipelining. If pipelining is supported, skip the slow start. If it's not, fall back to HttpBasicStreams. A site is judged not to support pipelining if we see an old HTTP version or encounter a socket error. A site does support pipelining if it successfully handles 3 requests. There's obviously room for improvement here, but this is a start. Related changes: - In the spirit of CHECK() failing. Use CHECK(false) instead of NOTREACHED(). - HttpPipelinedHost is now an interface with a corresponding Impl. This is to help unit test HttpPipelinedHostPool. BUG=None TEST=net_unittests Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=112557

Patch Set 1 #

Total comments: 1

Patch Set 2 : Add missing files #

Total comments: 16

Patch Set 3 : Whitelist some socket errors #

Total comments: 62

Patch Set 4 : Address various feedback #

Total comments: 10

Patch Set 5 : Patch for landing #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1288 lines, -426 lines) Patch
M net/http/http_pipelined_connection.h View 1 2 3 1 chunk +12 lines, -0 lines 0 comments Download
M net/http/http_pipelined_connection_impl.h View 1 2 3 4 1 chunk +4 lines, -0 lines 0 comments Download
M net/http/http_pipelined_connection_impl.cc View 1 2 3 4 8 chunks +40 lines, -4 lines 0 comments Download
M net/http/http_pipelined_connection_impl_unittest.cc View 1 2 3 4 3 chunks +139 lines, -1 line 0 comments Download
M net/http/http_pipelined_host.h View 1 2 3 4 3 chunks +31 lines, -39 lines 0 comments Download
D net/http/http_pipelined_host.cc View 1 chunk +0 lines, -108 lines 0 comments Download
A net/http/http_pipelined_host_impl.h View 1 2 3 4 1 chunk +99 lines, -0 lines 0 comments Download
A net/http/http_pipelined_host_impl.cc View 1 2 3 4 1 chunk +183 lines, -0 lines 0 comments Download
A net/http/http_pipelined_host_impl_unittest.cc View 1 2 3 4 1 chunk +301 lines, -0 lines 0 comments Download
M net/http/http_pipelined_host_pool.h View 1 2 3 2 chunks +31 lines, -5 lines 0 comments Download
M net/http/http_pipelined_host_pool.cc View 1 2 3 4 chunks +67 lines, -11 lines 0 comments Download
A net/http/http_pipelined_host_pool_unittest.cc View 1 2 3 1 chunk +185 lines, -0 lines 0 comments Download
D net/http/http_pipelined_host_unittest.cc View 1 chunk +0 lines, -201 lines 0 comments Download
M net/http/http_pipelined_network_transaction_unittest.cc View 1 2 3 4 9 chunks +178 lines, -46 lines 0 comments Download
M net/http/http_stream_factory_impl.h View 1 2 3 2 chunks +6 lines, -5 lines 0 comments Download
M net/http/http_stream_factory_impl.cc View 1 chunk +1 line, -1 line 0 comments Download
M net/http/http_stream_factory_impl_job.h View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M net/http/http_stream_factory_impl_job.cc View 1 2 chunks +6 lines, -2 lines 0 comments Download
M net/net.gyp View 1 2 3 2 chunks +4 lines, -2 lines 0 comments Download

Messages

Total messages: 18 (0 generated)
James Simonsen
I started in on this before you discovered the problem with Drain(). Thanks for finding ...
9 years, 1 month ago (2011-11-17 02:42:13 UTC) #1
mmenke
http://codereview.chromium.org/8586015/diff/1/net/http/http_pipelined_host_pool.cc File net/http/http_pipelined_host_pool.cc (right): http://codereview.chromium.org/8586015/diff/1/net/http/http_pipelined_host_pool.cc#newcode9 net/http/http_pipelined_host_pool.cc:9: #include "net/http/http_pipelined_host_impl.h" Looks like the CL is missing a ...
9 years, 1 month ago (2011-11-17 15:32:14 UTC) #2
James Simonsen
On 2011/11/17 15:32:14, Matt Menke wrote: > http://codereview.chromium.org/8586015/diff/1/net/http/http_pipelined_host_pool.cc > File net/http/http_pipelined_host_pool.cc (right): > > http://codereview.chromium.org/8586015/diff/1/net/http/http_pipelined_host_pool.cc#newcode9 ...
9 years, 1 month ago (2011-11-17 19:29:21 UTC) #3
mmenke
Some preliminary comments/nits. I'll do a more thorough pass tomorrow. http://codereview.chromium.org/8586015/diff/3002/net/http/http_pipelined_host_impl.cc File net/http/http_pipelined_host_impl.cc (right): http://codereview.chromium.org/8586015/diff/3002/net/http/http_pipelined_host_impl.cc#newcode155 ...
9 years, 1 month ago (2011-11-17 22:25:37 UTC) #4
mmenke
http://codereview.chromium.org/8586015/diff/3002/net/http/http_pipelined_host_pool_unittest.cc File net/http/http_pipelined_host_pool_unittest.cc (right): http://codereview.chromium.org/8586015/diff/3002/net/http/http_pipelined_host_pool_unittest.cc#newcode21 net/http/http_pipelined_host_pool_unittest.cc:21: static ClientSocketHandle* kDummyConnection = On 2011/11/17 22:25:37, Matt Menke ...
9 years, 1 month ago (2011-11-17 22:27:08 UTC) #5
James Simonsen
http://codereview.chromium.org/8586015/diff/3002/net/http/http_pipelined_host_impl.cc File net/http/http_pipelined_host_impl.cc (right): http://codereview.chromium.org/8586015/diff/3002/net/http/http_pipelined_host_impl.cc#newcode155 net/http/http_pipelined_host_impl.cc:155: // just ignore these unless they're common. Until then, ...
9 years, 1 month ago (2011-11-18 00:03:56 UTC) #6
willchan no longer on Chromium
I don't understand the changelist description of falling back to HttpBasicStreams. If we detect HTTP/1.0, ...
9 years, 1 month ago (2011-11-19 23:25:20 UTC) #7
mmenke
On 2011/11/19 23:25:20, willchan wrote: > I don't understand the changelist description of falling back ...
9 years, 1 month ago (2011-11-20 12:12:33 UTC) #8
willchan no longer on Chromium
On Sun, Nov 20, 2011 at 4:12 AM, <mmenke@chromium.org> wrote: > On 2011/11/19 23:25:20, willchan ...
9 years, 1 month ago (2011-11-20 18:00:07 UTC) #9
mmenke
Here are some more comments. I apologize for not getting a full review in last ...
9 years, 1 month ago (2011-11-21 14:51:39 UTC) #10
mmenke
Still need to take a look at the last unittest file, but other than that, ...
9 years ago (2011-11-28 23:05:28 UTC) #11
mmenke
http://codereview.chromium.org/8586015/diff/6001/net/http/http_pipelined_network_transaction_unittest.cc File net/http/http_pipelined_network_transaction_unittest.cc (right): http://codereview.chromium.org/8586015/diff/6001/net/http/http_pipelined_network_transaction_unittest.cc#newcode100 net/http/http_pipelined_network_transaction_unittest.cc:100: void CompleteTwoRequests(int data_index, int num_async) { |num_async|'s meaning is ...
9 years ago (2011-11-29 16:52:20 UTC) #12
James Simonsen
http://codereview.chromium.org/8586015/diff/6001/net/http/http_pipelined_connection_impl.cc File net/http/http_pipelined_connection_impl.cc (right): http://codereview.chromium.org/8586015/diff/6001/net/http/http_pipelined_connection_impl.cc#newcode617 net/http/http_pipelined_connection_impl.cc:617: if (result < OK) { On 2011/11/21 14:51:39, Matt ...
9 years ago (2011-12-01 01:17:09 UTC) #13
mmenke
Just a couple quick responses to your responses. I'll do another (Hopefully final) round of ...
9 years ago (2011-12-01 02:17:31 UTC) #14
mmenke
LGTM http://codereview.chromium.org/8586015/diff/21001/net/http/http_pipelined_host.h File net/http/http_pipelined_host.h (right): http://codereview.chromium.org/8586015/diff/21001/net/http/http_pipelined_host.h#newcode30 net/http/http_pipelined_host.h:30: PROBABLY_CAPABLE, Maybe add a comment that this is ...
9 years ago (2011-12-01 17:22:48 UTC) #15
James Simonsen
http://codereview.chromium.org/8586015/diff/6001/net/http/http_pipelined_host_pool_unittest.cc File net/http/http_pipelined_host_pool_unittest.cc (right): http://codereview.chromium.org/8586015/diff/6001/net/http/http_pipelined_host_pool_unittest.cc#newcode107 net/http/http_pipelined_host_pool_unittest.cc:107: pool_->OnHostIdle(host_); On 2011/12/01 02:17:31, Matt Menke wrote: > On ...
9 years ago (2011-12-01 20:36:42 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/simonjam@chromium.org/8586015/26004
9 years ago (2011-12-01 20:36:55 UTC) #17
commit-bot: I haz the power
9 years ago (2011-12-01 22:20:08 UTC) #18
Change committed as 112557

Powered by Google App Engine
This is Rietveld 408576698