[Serusers] more usrloc synchronization

Greger V. Teigre greger at teigre.com
Mon Apr 11 08:22:16 CEST 2005


With regards to stickiness: Have you looked at ktcpvs?  SIP is an "http-like" protocol and I'm pretty sure that you can use the http-based regex hashing to search for Call-Id.  If you cannot use it right out of the box, I'm pretty sure the modifications are minimal.
    The user location problem: With a cluster back-end, I also only see save_memory() as the only option.
g-)

> "Greger V. Teigre" <greger at teigre.com> wrote:
>> Greger, thanks a lot.
>> The problem with load balancer is that replies goes to the wrong
>> server due to rewriting outgoing a.b.c.d . BTW, as Paul pointed, if
>> you define some dummy interface with Virtual IP (VIP), there is no
>> need to rewrite outgoing messages (I tested this a little).
> 
> 
> Yes, if you use LVS with direct routing or tunneling, that is what
> you experience. 
> ===Of course. That why I implemented small "session" stickness.
> However, it causes additional internal traffic. 
> 
>  What I described was a "generic" SIP-aware load balancer where SIP
> messages would be rewritten and stickiness implemented based on ex.
> UA IP address (or call-id like vovida's load balancer).  
> ====Sure, it's better solution; I think we'll go this way soon (in
> our next version). 
> 
>> Why DNS approach is bad (except restricted NAT - let's say I am
>> solving this)?
> 
> Well, IMO, DNS SRV in itself is not bad. It's just that many user
> clients do not support DNS SRV yet.  Except that, I like the concept
> and it will give you a geographical redundancy and load balancing.  
> ===I am trying to build the following architecture:
> 
> DNS (returns domain's public IP)->LVS+tunneling (Virtual IP)->ser
> clusters (with private IPs) 
>                                                                      
> | 
>                                                                      
> | 
>                                                                  DB
> (MySQL 4.1 cluster) 
> 
>> I guess, Paul utilizes load-balancer scenario you have described.
>> Believe there are only proprietary solutions for
>> "the-replies-problem". We tried Vovida call-id-persistence package,
>> unfortunately it didn't work for us.
> 
> Are you referring to the load balancer proxy? IMHO, the SIP-aware
> load balancer makes things a bit messy.  It sounds to me that the LVS
> + tunneling/direct routing + virtual IP on dummy adapter is a better
> solution.   
> 
>> In my configuration I use shared remote DB cluster (with
>> replication). Each ser see it as one-public-IP (exactly the approach
>> you named for SIP). May be it's good idea to use local DB clusters,
>> but if you have more than 2 servers your replication algorythm gonna
>> be complex. Additional problem - it still doesn't solve usrloc
>> synchronization - you still have to use t_replicate()...
> 
> 
> I'm not sure if I understand.
> ===Oh, probably I expressed myself not well enough...
> 
> So, you have 2 servers at two location, each location with a shared
> DB and then replication across an IPsec tunnel?? 
>     IMHO, mysql 3.23.x two-way replication is quite shaky and
> dangerous to rely on.  With no locking, you will easily get
> overwrites and you have to be very sure that your application doesn't
> mess up the DB.  I haven't looked at mysql 4.1 clustering, but from
> the little I have seen, it looks good. Is that what you use?    
> 
> ===We have 2 or more servers with MysQL 4.1 virtual server (clusters
> balanced by LVS). We use MySQL for maintaining subscribers' accounts,
> not for location. User location is still in-memory only so far. I am
> afraid I have to switch to ser 09 in order to use save_memory (thanks
> Paul!) and forward_tcp() for replication.    
> 
>> With regard to t_replicate() - it doesn't work for more than 2
>> servers, so I used exactly forward_tcp() and save_noreply() (you're
>> absolutely right - this works fine so far); all sers are happy. Of
>> course, this causes additional traffic. Interesting whether Paul's
>> FIFO patch reduces traffic between sers?
> 
> I believe Paul uses forward_tcp() and save_memory() to save the
> location to the replicated server's memory, while the
> save("location") on the primary server will store to the DB (which
> then replicates on the DB level).   
> g-)
> 
> 
> 
> 
> 
> Do you Yahoo!?
> Yahoo! Small Business - Try our new resources site!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20050411/6a659ad3/attachment.htm>


More information about the sr-users mailing list