[SR-Users] High performance routing options

Alex Balashov abalashov at evaristesys.com
Mon Sep 6 18:57:39 CEST 2010


We use this in our solutions and search hundreds of millions of routes  
with it in 2-3 ms.  It works very well, to say the least, because it  
is an approach that allows application of complex business logic  
(using stored procedures) to the results, something which is much  
harder with a more primitive (if faster) in-memory structure.  Best of  
all, it is specifically designed to deal with the problem of variable- 
length prefixes, so many of the prefix length constraints and/or  
homogeneity requirements of other routing and LCR engines are  
eliminated.

It is not possible to say whether a database-backed structure is  
loaded "from memory"; this is a gross oversimplification of a very  
complex issue.  Clearly, an RDBM cannot load all data into heap;   
there is plenty of demand-loading of data from disk.  RDBM caching,  
filesystem and I/O caching, disk caching, etc. all play a big role in  
what the result will actually look like from a median performance  
perspective.

--
Alex Balashov - Principal
Evariste Systems LLC
1170 Peachtree Street
12th Floor, Suite 1200
Atlanta, GA 30309
Tel: +1-678-954-0670
Fax: +1-404-961-1892
Web: http://www.evaristesys.com/

On Sep 6, 2010, at 12:06 PM, Daniel-Constantin Mierla  
<miconda at gmail.com> wrote:

> Hello,
>
> On 9/6/10 6:01 PM, Henning Westerholt wrote:
>> On Monday 06 September 2010, anthony thomas wrote:
>>> Yes, Indeed we are thinking in using postgres (we already use it  
>>> for our
>>>  backoffice databases).
>>>
>>> This sencente confuses me a little bit:
>> Hello Anthony,
>>
>>  >   "some database which supports proper prefix matching (i think  
>> postgres is
>>>  able to do this)"
>>>
>>> Once the db is loaded, the prefix matching is done in memory, right?
>> well, i think this depends on the database configuration and memory  
>> setup of
>> the machine, but normally this is what you want. I was referring to  
>> the fact
>> that in my experience one not insert complete number ranges in the  
>> database
>> but certain prefixes, and then do a longest prefix match to find  
>> the optimal
>> route. But of course you could do also something like this with  
>> some SQL.
>>
>>> And I am not following you here:
>>> "with some queries in the script instead of a custom module?"
>> I was referring to the setup you just described, use a standard DB  
>> with the a
>> module like sqlops instead of something more specialized, e.g. cr.
> For postgresql, here is a link to follow for more details:
> http://prefix.projects.postgresql.org/
>
> Cheers,
> Daniel
>
> -- 
> Daniel-Constantin Mierla
> http://www.asipto.com
>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing  
> list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users



More information about the sr-users mailing list