[ http://tracker.iptel.org/browse/SER-245?page=all ]

Jan Janak updated SER-245:
--------------------------

    Fix Version/s:     (was: Wishlist)

> Improved efficiency of usrloc's expiration algorithm
> ----------------------------------------------------
>
>                 Key: SER-245
>                 URL: http://tracker.iptel.org/browse/SER-245
>             Project: SER
>          Issue Type: Improvement
>          Components: Registrar
>    Affects Versions: Ipteldorf
>            Reporter: Jan Andres
>            Priority: Minor
>             Fix For: Ipteldorf
>
>         Attachments: signature.asc, sip_router-cvs-20070704-ul_heap.diff, 
> sip_router-cvs-20080204-ul_heap.diff, usrloc_heap.diff
>
>
> This patch replaces the algorithm for the removal of expired usrloc entries. 
> It avoids the need to traverse all registered contacts each time the 
> expiration procedure is run. The procedure can then be run much more 
> frequently (like once per second or even more frequently if desired) which 
> will make the overall operation "smoother" and avoid sending out large bursts 
> of database updates, presence notifications, etc. on each expiration run. 
> This also avoids keeping the udomain locked for extended amounts of time.
> The patch works by organizing the individual ucontacts in a binary heap 
> ordered by the contact's expiration time. The expiration procedure can then 
> simply remove elements from the heap until no more expired ones are left.
> The overhead of maintaining the heap was a concern at first, but a quick peek 
> at the profiler and some performance tests show that the impact is really 
> negligible, if visible at all.
> Note that this change doesn't help much if db_mode is 2 (WRITE_BACK) since 
> then the timer still has to traverse all contacts to look for "dirty" 
> entries. A possible fix would be to keep the dirty elements in a linked list. 
> Some other cleanups could be applied (e.g. eliminate the linked list of all 
> contacts, as they are all stored in the heap anyway), but I haven't done them 
> yet.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.iptel.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
Serdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/serdev

Reply via email to