[Users] New feature: fetch support in database API

Daniel-Constantin Mierla daniel at voice-system.ro
Mon Jul 17 18:07:59 CEST 2006


the CVS head has now support for fetch-result capability in MySQL 
driver. The usrloc module is already using it. The new feature allow to 
do incremental load of location records from database. This removes the 
issue of 'out of private memory' when dealing with huge numbers of 
active subscribers, with no hacking into the code.

Just as an example, with default OpenSER parameters and compile flags, 
you can load up to 120 000 location records (within 32MB of share memory 
and 1MB of private memory per process) - the whole used system memory 
being about 40MB with default config file.  For same number of location 
entries, but without this feature, OpenSER/SER requires about 256MB.

At this moment, the private memory becomes irrelevant, user location 
scaling being linear with size of share memory you want to allocate 
(share memory size can be given via command line parameter -m) -- 256MB 
of share memory should enough for 960 000 location records and the 
private memory per worker process can still be 1MB.

More details:


Next step on this scalability direction is to have asynchronous user 
location loading - usrloc database records caching will be done by one 
of the openser children, the others will process SIP messages - this 
results in faster openser start/restart.


More information about the sr-users mailing list