[OpenSIPS-Users] feature request feedback

Bogdan-Andrei Iancu bogdan at voice-system.ro
Tue May 26 17:54:36 CEST 2009


Hi Brett,

The idea of having "families / classes/ groups" for cached values is 
indeed a nice and useful one. I will love to have this in the next release.

But regarding the "best_match" do you think there is any other 
application for it except the routing part?

An idea that I would like to explore is how to use an external cache 
server (like memcached) during t restarts to avoid the penalty of going 
through the db (save and load) - like you restart opensips, but the 
memory content stays the same.

Regards,
Bogdan

Brett Nemeroff wrote:
> Hey All,
> I just had this revelation today about a potential feature and I 
> wanted to run it by the group to see if there was any interest in it. 
> I tried posting it to the tracker, but sf.net <http://sf.net> keeps 
> failing (I'm getting server busy messages.. grumble..)
>
> So I had talked before about "memcache families". This is where you 
> can store data into separate memcache namespaces. This would be useful 
> to store and purge large sets for data at one time..
>
> Think for a minute about routes being loaded into memcache....
>
> Say for example, if I had 10 customers. Each with their own unique 
> route table with 3 million records each. As one table, that would be 
> 30 million total routes.. Which may be slow to traverse (not sure, 
> haven't tested). However if each route table is in it's own family 
> (ie: namespace in memcache) it would only be 3 million. Which should 
> be very fast. Also, if I'm changing just one route, I wouldn't have to 
> purge my entire memcache store to update it.. just the one route table 
> effected.. Also, I use memcache to store my IP to account 
> relationships.. so we don't need those to reload either.. That's the 
> idea of memcache families; only update the family that makes sense. It 
> would only add one additional option to the cache_store and 
> cache_fetch functions (family). And would also add a function 
> cache_family_purge, which would delete an entire family of data.
>
> Now building on that idea is my next feature request (which really 
> doesn't depend on memcache families, but it makes sense to combine the 
> two):
> This is a request for the ability to "find_best_match" in memcache 
> family. This is a function that you'd pass a memcache family to and it 
> would take the input value (say $rU for example) and keep removing a 
> character from it until it hit a match and then return the cached 
> value. Of course, this also depends on preloaded cache values. Which 
> I'd load from an external script upon startup.
> Function usage would be like this: 
> find_best_match("<memcache_storage_engine>","<memcache_family_name>","<value_to_search_with>",<avp_to_recieve_results>) 
>
> There is a *ton* that can be done with this.. My mind is spinning. :) 
> ie: return 1.2.3.4_<prefix> Then use the transformations to pull the 
> prefix out and push it into the $rU.. Very powerful.. And you wouldn't 
> even need custom modules anymore for routing.
>
> So if the dialed number is 5125551212 and in memcache I have: 512555 
> -> 1.2.3.4 It would hit memcache like this: if 
> (find_best_match("local","$avp(s:routetable)","$rU",$avp(s:routestring))) 
> { $rD = $(avp(s:routestring){s.select,0,_}); # rewrite destination $rU 
> = $rU + $(avp(s:routestring){s.select,1,_}); # add prefix if defined } 
> else { sl_send_reply("404","No Route"); exit; } 5125551212 -> No Match 
> 512555121 -> No Match 51255512 -> No Match 5125551 -> No Match 512555 
> -> 1.2.3.4
>  
> Thanks for your consideration and feedback!!
> -Brett
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>   




More information about the Users mailing list