Thanks Alex,
In our case business logic is out of the system, a different application/server takes care of it and just "dumps" the results (prefix->route) to the database that kamailio will load into memory.
I am surprise that you get such a performance with store procedures, what RDBM are you using?
--- On Mon, 9/6/10, Alex Balashov abalashov@evaristesys.com wrote:
From: Alex Balashov abalashov@evaristesys.com Subject: Re: [SR-Users] High performance routing options To: "Daniel-Constantin Mierla" miconda@gmail.com Cc: "sr-users@lists.sip-router.org" sr-users@lists.sip-router.org Date: Monday, September 6, 2010, 12:57 PM 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@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@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users