[SR-Users] mtree on db Berkeley DB?

Daniel-Constantin Mierla miconda at gmail.com
Wed Nov 16 08:13:51 CET 2011


Hello,

On 11/15/11 10:09 PM, Javier Gallart wrote:
>
>     Hello
>
>     coming back to the topic related to mtree, to be able to set
>     values via
>     mi/rpc -- it won't be that difficult to add such functionality.
>     Usually
>     with a tree is mainly reading, due to fast matching on tree indexing.
>     The question is how many times/often do you need to change values and
>     how many of them at the same time (more or less).
>
> I was also thinking about that: our application works in such a way 
> that the full tree is recalculated every 15 minutes. Currently we have 
> aound 60 branches with 150000 entries each.
>
>     I assume many times the changes will be somewhere down the tree, since
>     the first part of the number is usually the same (e.g., country
>     code and
>     operator prefix). To update the tree at runtime, while there are reads
>     on it, there must be used a lock to be safe an consistent. If you
>     do lot
>     of writes and very often, then you keep the tree structure locked
>     a lot,
>     slowing the search.
>
>
> That's the case, tname is rarely updated, it's tvalue the column that 
> we normally update.

I guess you meant actually tprefix is not updated -- tname is table 
name, tprefix is the prefix used to build the tree. What would be the 
percentage of tvalue updates, do you have add/remove of tprefix-es?

>
>     Can you estimate the number of writes and how often they would be on a
>     daily basis? There might be other solutions to look at, if writes are
>     very often.
>
>
> From the numbers above, let's say that we need to update around 8M 
> records every 15 minutes (we expect this number will keep steadily 
> increasing...)

But not all of them change the value, right?

>
> As a side note, I've looked at how to implement the mt_match 
> equivalent in redis and it does't look that hard using kamailio 
> s.prefixed transformation (as you suggested) and redis sorted sets. 
> I'll need to make more tests to check the performance, I'll share the 
> results.

I have used this solution with mysql (using a table structure in memory 
of mysql server), since the changes could have been done in mysql in 
normal way, in one update query, which is a sync operation. Does redis 
do any caching or is using always the disk file db?

Cheers,
Daniel

>
> Thanks!
>
> Javi
>
>
>     Cheers,
>     Daniel
>     >
>     > Regards
>     >
>     > Javi
>
>
>
> _______________________________________________
> 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

-- 
Daniel-Constantin Mierla -- http://www.asipto.com
Kamailio Advanced Training, Dec 5-8, Berlin: http://asipto.com/u/kat
http://linkedin.com/in/miconda -- http://twitter.com/miconda

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20111116/d4083146/attachment-0001.htm>


More information about the sr-users mailing list