One more change for v3 I think
Matthew Newton
mcn4 at leicester.ac.uk
Tue Feb 24 18:54:23 CET 2015
On Tue, Feb 24, 2015 at 11:58:55AM -0500, Alan DeKok wrote:
> I put a change into master which should probably go into v3, too:
>
> https://github.com/FreeRADIUS/freeradius-server/blob/master/src/main/connection.c#L814
>
> The connection pool re-uses connections based on “most
> recently used”. But the exact definition of MRU is important.
> It turns out that “last returned to the pool” is a bad metric.
> Because the connection could be blocked / slow. And re-using
> that connection would mean re-using a blocked / slow
> connection.
That makes sense - and the FB link is an interesting read. Not
something I'd normally think about with link aggregation!
So essentially when things start to get busy, a connection may
fail quicky, meaning it goes back into the pool and is then picked
up again rather than other entries that have been hanging around
idle for a while.
> The solution is to define MRU as “most recently removed from
> the pool, and returned to the pool”. This change prioritizes
> connections which are fast.
>
> The code is a bit complicated, because it has to keep track of
> more information. But it should result in systems which are
> more stable.
Quick skim through and it looks OK to me, as long as the code in
src/lib/heap.c is well behaved (which I've not stared that hard
at!).
Cheers,
Matthew
--
Matthew Newton, Ph.D. <mcn4 at le.ac.uk>
Systems Specialist, Infrastructure Services,
I.T. Services, University of Leicester, Leicester LE1 7RH, United Kingdom
For IT help contact helpdesk extn. 2253, <ithelp at le.ac.uk>
More information about the Freeradius-Devel
mailing list