(RADIATOR) threading

Andrew andrew at andies.id.au
Tue Oct 26 22:27:18 CDT 2004


It certainly would help and has been shown to. The idea being that it 
becomes a method of sharing load amongst multiple single-threaded 
Radiator processes.

The problem that I, and others, have with this is that it's quite 
fiddly. You need to run multiple backend copies of Radiator and worry 
about high availability for each of them. Each needs to be bound to a 
different port and that has to match the configuration of the frontend. 
Multiply this by the number of physical servers you want to run and it 
soons becomes desirable to have native support.

On top of this, at least one person has found reason to switch to 
Freeradius instead of Radiator for the frontend.

Another issue is that with the above method there is no way that 
Radiator can be clever and spawn extra children during bursts of load.

Rather than a truly threaded verson, my preference would be for a 
configurable number of pre-forked child threads, possibly for an option 
to spawn more on demand (up to a maximum). This would offer huge 
scalability. It seems that it would require wholesale changes to the 
Radiator code though so I can understand why the developers are not keen 
when there are other alternatives. The behaviour changes in Radiator 
might be dramatic enough to cause backward compatibility issues with old 
configurations.

Ultimately I don't see a front end process as useful because by the time 
one is necessary, you're big enough to need to spread the load over 
multiple machines for hardware-level redundancy and performance, which 
justifies a hardware load balancer.


Andrew


Andy De Petter wrote:
> Tariq Rashid wrote:
> 
>>> From: Andy De Petter [mailto:adepette at skybel.net]
>>> You would still be stuck with maximum 1 request being handled, per 
>>> different instance you're running - which is unacceptable from large 
>>> ISP point of view.
>>>   
>>
>>
>> of course - but the proxying code can be multithreaded... i have used a
>> small minimal freeradius (threaded) to proxy requests to separate 
>> radiator
>> instances on different machines. and it works well!
>>
>> tariq
>>  
>>
> Threading the proxying code doesn't help, if the backends aren't 
> threaded.  It's not the frontends (which proxy) that is the problem, 
> it's the backend.   If your backend radiator instances are locked for 
> one reason or the other, you may have as much threaded frontends that 
> you want, it won't help you. ;)
> 
> -Andy
> 

--
Archive at http://www.open.com.au/archives/radiator/
Announcements on radiator-announce at open.com.au
To unsubscribe, email 'majordomo at open.com.au' with
'unsubscribe radiator' in the body of the message.


More information about the radiator mailing list