On Oct 19, 2009, at 10:45 AM, Simon Eisenmann wrote:

Am Montag, den 19.10.2009, 10:37 -0400 schrieb Adam Kocoloski:
o, until JIRA comes back online I'll follow up with that here.  I
think I could see how repeated pull replications in rapid succession
could end up blowing through sockets.  Each pull replication sets up
one new connection for the _changes feed, and tears it down at the
end
(everything else replication-related goes through a connection
pool).
Do enough of those very short requests and you could end up with
lots
of connections in TIME_WAIT and eventually run out of sockets.
FWIW,
the default Erlang limit is slightly less than 1024.  If your
update_notification process uses a new connection for every POST to
_replicate you'll hit the system limit (also 1024 in Ubuntu IIRC)
twice as fast.

I see that you mean. Though i am using a connection pool in the update
notification as well. I verified that i am not leaking connections on
the client side. The only reason i have to throw away and open a nw
connection is if the response is returned chunked.

I see the reasons for chunged transfer encoding. Is there a way to
disable it on connections so i can make sure i have a fixed connection
pool size on the client?

Hi Simon, I'm not sure I follow why chunked responses require new connections, but in any event, I'm fairly certain that responses to _replicate are not chunked.

(Digression more appropriate for dev@) Does the client really have any control over whether the responses are chunked? I guess the "right" way to force no chunking from the client side would be to make an HTTP/ 1.0 request (with Connection: keep-alive if you still want the connection pool). We should check at some point to see if that actually works.

Adam

Reply via email to