[Users] NEW FEATURE: better timers

Bogdan-Andrei Iancu bogdan at voice-system.ro
Fri Feb 2 20:28:41 CET 2007


Hi everybody,

following to some discussions / requests from users, openser devel 
branch has now core support for timers will resolution less than a 
second. It uses time functions that can give a microsecond accuracy, but 
for performance reasons, the utimer (microtimer) uses a ticking period 
of 100 milliseconds. Of course, this can be changed at compile time.

First "beneficiary" of this timer, is TM, to gain more accuracy for 
retransmissions:
* retransmission timers use the the core utimer (with microsecond 
resolution),
  having 100 milliseconds intervals.
* this will increase the retransmissions precision to an error of maximum
  100 milliseconds.
* T1 (first retransmission) is done at 500 milliseconds (instead of 1 
sec), as
  the RFC3261 suggests.
* T1 and T2 (see RFC3261) can be configured via module parameters - the
  inter-steps are automatically computed on startup based on the RFC3261
  specifications.

Along with increasing the timer accuracy, the TM timer lists were 
improved for faster operations:
* faster timers lists - use shortcut pointers (based on timeout values) for
  faster walking through the list -> faster insert and expire
* for elements to be deleted from the timer lists, do not overwrite the 
timeout
  value as this will trigger more processing when inserting new elements 
into
  the list


The performance tests are not completed - I need more machines to stress 
the proxy :D -, but I will come back with results during the testing phase.

regards,
bogdan




More information about the sr-users mailing list