At 15:45 30/03/2007, Jerome Martin wrote:
On Fri, 2007-03-30 at 16:16 +0300, Bogdan-Andrei Iancu
wrote:
Hi Jerome,
right, sometime is good to have thinks as clear as possible :).
Yep
:-)
as update on the topic, openser 1.2 has a new, improved timer
implementation (core and TM) - actually done by myself :) - and part of
the performance boost roots from there.
Which is, BTW, a great job
:-)
For people interested in looking at what SER does, this message led me to take a look a
SER 2.0 documentation and bits of code, and it is not immediatly evident that they are
taking a radically different route ... they also improved timer granularity (down to a
resolution of 62.5 ms).
Well actually I think so. I am not sure what else you could call for a software to be of
radical change than complete change of the underlying data structures and associated
algorithms :-). (referring to the timer subsystem)
They changed a bit parameters to configure various
timers from config file, and they of course retained the ability to change fr_timer and
fr_inv_timer (interesting for controlling max ringing duration) on-the-fly on a
per-transaction basis.
The key thing (in addition to minor) is elimination of race conditions.
They also are currently developping a very interesting
module called "timer", which provides the ability to set timers on-the-fly, with
callback implemented as routes called when the custom timers fire. This seems pretty
simple in their model, the timer module being only 408 lines long (but I can't tell if
this works already or not).
Yes, that's a cute thing but I was previsouly merely referring to the under-the-hood
kind of things.
An other puzzling fact is that SER's implementation
of timers in tm module is about half the size as OpenSER's .... I'm not sure we
can infer anything from this fact, still it made me curious.
Neither am I.
-jiri