Hello,
When you are using the notifier processes the presence module needs to check the database to see if any records have been marked as requiring notification. The rate of these checks is fixed and has nothing to do with the number of subscribers on the system. This is by design so as to evenly distribute the processing for notification across time.
Each database query checks a subset of the records (based on a hash). This size of this subset depends on the modparam settings used. With the other notifier process modparams and the three notifier processes you have configured the records have been split into 150 subsets and each process checks 10 of the subsets per second (for a total of 30 database queries per second).
As for the not all subscribers being notified, assuming everything (your Kamailio configuration, client configuration, and so on) is correct it could well be a bug. The notifier processes rely on features only available in Kamailo 4.0.0 (to do with database transaction handling and locking) to work correctly. Also, these database features in Kamailio 4.0.0 are only currently available in the Kamailio PostgreSQL database driver. I would not expect this to work properly unless you are using Kamailio 4.0.0 with PostgreSQL.
Regards,
Peter
On 14/03/13 15:27, Jasmin Schnatterbeck wrote:
Hi,
in kamailio 3.3 the presence DB mode parameters "subs_db_mode", "publ_cache" and "notifier_processes" control how the module stores presentity and watcher info in DB.
If they have been set to the following values: subs_db_mode=3 publ_cache=0 notifier_processes=3 the following query is executed >10 times/second (mysql log):
"select presentity_uri,callid,to_tag,from_tag,event from kamailio_active_watchers where updated=123 AND event<>'presence.winfo'"
According to the notifier_poll_rate default value (==10) and the formula in the documentation 1/(waitn_time * notifier_poll_rate * notifier_processes) That results in 1/(5*10*3) == 1/150
So is it really regular behaviour, if the query is performed that often? What about using triggers in that situation?
Additionally I have noticed, that only one subscriber gets notified, if a presentity changes although all subcribers have been stored correctly in active_watchers.
When I set notifier_processes to 0 (old behaviour) every subscriber gets notified correctly...
Cheers Jasmin
sr-dev mailing list sr-dev@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev