hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oleg Kalnichevski <ol...@apache.org>
Subject [Fwd: RE: MultithreadedConnectionManager pooling strategy]
Date Wed, 09 Aug 2006 16:39:51 GMT
Folks,

The message I am forwarding was sent to the HttpClient user list a while
ago. I think the changes proposed by Balazs are very reasonable.
Unfortunately Balazs never submitted the patch and did not return emails
I had sent him off-list. Nonetheless, I think we should consider
changing MultithreadedConnectionManager's behavior as proposed by Balazs
and include those changes into 3.1-beta1

Mike, what do you think?

Oleg

-------- Forwarded Message --------
From: SZÜCS Balazs <Balazs.Szuecs@wave-solutions.com>
Reply-To: HttpClient User Discussion
<httpclient-user@jakarta.apache.org>
To: 'HttpClient User Discussion' <httpclient-user@jakarta.apache.org>
Subject: RE: MultithreadedConnectionManager pooling strategy
Date: Mon, 15 May 2006 15:26:08 +0200

Hello,

I made two changes to the HttpClient code:

1) in the class ConnectionPool in the method getFreeConnection( ... ) I
changed freeConnections.removeFirst() to freeConnections.removeLast(). Now
the container for free connections behaves as a stack rather than a queue.

2) additionally I changed the IdleConnectionTimeoutThread, in the run()
method I added connectionManager.deleteClosedConnections() so that the pool
size is maintained correctly.

What do you think?
Balazs

	 -----Original Message-----
	From: 	Oleg Kalnichevski <olegk@apache.org>@DSI  
	Sent:	Donnerstag, 04. Mai 2006 18:07
	To:	HttpClient User Discussion
	Subject:	Re: MultithreadedConnectionManager pooling strategy

	On Thu, 2006-05-04 at 18:00 +0200, SZÜCS Balazs wrote:
	> Hello,
	>
	> I'm using HttpClient 3.0-rc4, and I have a question about the
connection
	> pooling strategy of MultithreadedConnectionManager. The reason for
that is
	> that I use an IdleConnectionTimeoutThread (runs every 60 secs,
using a
	> timeout of 60 secs) configured with a
MultithreadedConnectionManager, and
	> idle connections don't seem to get closed by the
	> IdleConnectionTimeoutThread. However, on a long time span
(overnight) the
	> pool size decreases, but I would expect a quicker reaction, when
my
	> application is not unter heavy load.
	>
	> I've taken a look at the source of MultithreadedConnectionManager,
and I
	> realized, that free connections are stored in a linked list. On
demand the
	> next free connection is taken from the BEGINNING of the list,
while after
	> usage the connection is put back to the END of the list. This
seems to me a
	> round robin behavior, and it might prevent connections reaching
the
	> predefined age for being recognized as idle. If there is some
load, each
	> free connection will be used, instead of just using a few of them,
and
	> letting the rest age.
	>
	> Does that make any sense?
	>

	Balazs,

	Yes, it does. Please file a bug report in Bugzilla. Feel free to
provide
	a patch for the problem. We love patches ;-)

	Oleg

	> Thank you!
	>
	> Balazs


	
---------------------------------------------------------------------
	To unsubscribe, e-mail:
httpclient-user-unsubscribe@jakarta.apache.org
	For additional commands, e-mail:
httpclient-user-help@jakarta.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-dev-help@jakarta.apache.org


Mime
View raw message