[Freeswitch-users] Alternative to directory lookup using mod_xml_curl

Michael Jerris mike at jerris.com
Thu Sep 18 16:03:58 PDT 2008


Do you have any performance tests to show the difference?

Mike


On Sep 18, 2008, at 6:50 PM, Cristian Talle wrote:

> I gave it a try though... and it works nicely (at least for  
> directory entries for now). I've added 3 more commands to xml_curl:  
> cache_on, cache_off and cache_delete_key.
>
> - cache_on - enables caching: it will store in a switch_hash_t  
> structure all xml strings returned by curl, using <username>@<realm>  
> as a key (since we're talking directory only in this example). The  
> same key is looked up every time the xml is requested for that user/ 
> realm and the code returns an xml structure created using  
> switch_parse_xml_from_str().
>
> - cache_off - switches back to the original behavior and clears the  
> hash.
>
> - cache_delete_key <key> - will invalidate the cache entry so that  
> next time it is reloaded by curl.
>
> considering a 500 bytes - 1K string for each profile, you can cache  
> 10000 user profiles in ~10M (considering we're storing the char* s)
> please see a sample console output,with a terminal registering every  
> 25 seconds
>
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> freeswitch at localhost.localdomain> 2008-09-18 18:26:19 [CONSOLE]  
> mod_xml_curl.c:363 xml_url_fetch() XML response is in /tmp/ 
> d0c586a8-85d0-11dd-838c-5148f6e85b7b.tmp.xml
>
> freeswitch at localhost.localdomain> xml_curl cache_on
> API CALL [xml_curl(cache_on)] output:
> OK
>
> freeswitch at localhost.localdomain> 2008-09-18 18:26:44 [CONSOLE]  
> mod_xml_curl.c:245 xml_url_fetch() Key is not in cache [1039 at 192.168.1.225 
> ].
> 2008-09-18 18:26:45 [CONSOLE] mod_xml_curl.c:363 xml_url_fetch() XML  
> response is in /tmp/e00c7ae0-85d0-11dd-838c-5148f6e85b7b.tmp.xml
>
> 2008-09-18 18:27:10 [CONSOLE] mod_xml_curl.c:231 xml_url_fetch()  
> Using xml from cache: 1039 at 192.168.1.225
> 2008-09-18 18:27:35 [CONSOLE] mod_xml_curl.c:231 xml_url_fetch()  
> Using xml from cache: 1039 at 192.168.1.225
>
> freeswitch at localhost.localdomain> xml_curl cache_delete_key 1039 at 192.168.1.225
> 2008-09-18 18:27:42 [NOTICE] mod_xml_curl.c:128 xml_curl_function()  
> Removing value for [1039 at 192.168.1.225]
> API CALL [xml_curl(cache_delete_key 1039 at 192.168.1.225)] output:
> OK
>
> 2008-09-18 18:28:01 [CONSOLE] mod_xml_curl.c:245 xml_url_fetch() Key  
> is not in cache [1039 at 192.168.1.225].
> 2008-09-18 18:28:01 [CONSOLE] mod_xml_curl.c:363 xml_url_fetch() XML  
> response is in /tmp/0d729f00-85d1-11dd-838c-5148f6e85b7b.tmp.xml
>
> freeswitch at localhost.localdomain> xml_curl cache_off
> 2008-09-18 18:28:07 [NOTICE] mod_xml_curl.c:102 xml_curl_function()  
> cleaning up directory cache
> API CALL [xml_curl(cache_off)] output:
> OK
> = 
> = 
> ======================================================================

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20080918/a37eb484/attachment-0002.html 


More information about the FreeSWITCH-users mailing list