<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2627" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV>Yes, good point, but I don't like the solution. Both doing t_replicate AND 
DB replication is replication at both layers... I think we here have another 
argument for replication at the application layer. I'm starting to get blurred 
vision here: What was the reason for doing DB-level replication in the first 
place? (And BTW, what do you gain?)</DIV>
<DIV>g-)</DIV>
<DIV>&nbsp;</DIV>
<DIV>---- Original Message ----<BR>From: Java Rockx<BR>To: Karl H. Putz<BR>Cc: 
serusers<BR>Sent: Monday, May 30, 2005 05:07 PM<BR>Subject: Re: [Serusers] SER 
Reports "out of memory"<BR><BR>&gt; Good point. So then perhaps t_replicate() 
[AND] save_memory() should<BR>&gt; be used as normal. And SER should then just 
start up using a<BR>&gt; lazy-loading mechanism. Eventually all SER routers in 
the farm would<BR>&gt; then have a fully populated cache and the problem would 
be solved.&nbsp;&nbsp; <BR>&gt; <BR>&gt; In other words the SER server that 
physically recieves the original<BR>&gt; REGISTER message would save() and 
t_replicate(). <BR>&gt; <BR>&gt; All the peers in the farm that receive a 
REGISTER via the<BR>&gt; t_replicate() function would only use save_memory(). 
<BR>&gt; <BR>&gt; MySQL replication still occurs and if a SER server is 
restarted it<BR>&gt; doesn't attempt to load usrloc info upon startup, but 
rather loads it<BR>&gt; over a period of time. All the while, if a usrloc record 
is looked-up<BR>&gt; and it is on in cache, then SER would query MySQL for the 
correct<BR>&gt; ucontact record.&nbsp;&nbsp;&nbsp; <BR>&gt; <BR>&gt; Thanks for 
the qustion --- I hadn't thought about that before.<BR>&gt; <BR>&gt; 
Regards,<BR>&gt; Paul<BR>&gt; <BR>&gt; <BR>&gt; On 5/30/05, Karl H. Putz 
&lt;kputz@columbus.rr.com&gt; wrote:<BR>&gt;&gt; -----Original Message-----On 
Behalf Of Jiri Kuthan<BR>&gt;&gt; Sent: Monday, May 30, 2005 5:36 AM<BR>&gt;&gt; 
At 03:40 AM 5/30/2005, Java Rockx wrote:<BR>&gt;&gt;&gt; Currently, usrloc is 
replicated via t_replicate() using<BR>&gt;&gt;&gt; db_mode=writeback. 
<BR>&gt;&gt;&gt; <BR>&gt;&gt;&gt; However, our lazy-load patch would obsolete 
the need for<BR>&gt;&gt; t_replicate() because we have multiple MySQL servers 
that are<BR>&gt;&gt; active-active so __all__ replication really occurs at the 
database<BR>&gt;&gt; layer rather than the SIP layer.<BR>&gt;&gt; <BR>&gt;&gt; 
So this is the point which I am still struggling with. I mean<BR>&gt;&gt; 
generally there is a problem<BR>&gt;&gt; of read-write intenstive UsrLoc 
operations. We can move it from<BR>&gt;&gt; SIP to DB. However, 
whichever<BR>&gt;&gt; layer we choose to solve the problem, it takes 
careful<BR>&gt;&gt; dimensioning. Otherwise the<BR>&gt;&gt; replication 
mechanism may cause peformance problems.<BR>&gt;&gt; <BR>&gt;&gt; What Mysql 
setup are you exactly using? Cluster? Master/slave<BR>&gt;&gt; replication? 
<BR>&gt;&gt; <BR>&gt;&gt; Otherwise I think that the cache policy 
"load-on-demand" makes sense.<BR>&gt; <BR>&gt; If pure DB replication is used, 
what would happen in the following<BR>&gt; scenario: <BR>&gt; <BR>&gt; A given 
user receives multiple calls such that more than 1 physical<BR>&gt; SER <BR>&gt; 
server has userloc<BR>&gt; cache populated.<BR>&gt; <BR>&gt; The user then 
phsyically moves or changes return contact registration<BR>&gt; information and 
re-registers.<BR>&gt; <BR>&gt; It seems that the specific SER server that 
handled the registration<BR>&gt; would <BR>&gt; update cache and the<BR>&gt; 
backend DB would be updated.&nbsp; But any attempt to contact the user<BR>&gt; 
through a <BR>&gt; SER server that has<BR>&gt; not yet expired the old cache 
info would fail.<BR>&gt; <BR>&gt; <BR>&gt; Karl<BR>&gt; <BR>&gt;&gt; 
<BR>&gt;&gt; -jiri<BR>&gt;&gt; <BR>&gt;&gt; 
_______________________________________________<BR>&gt;&gt; Serusers mailing 
list<BR>&gt;&gt; serusers@lists.iptel.org<BR>&gt;&gt; 
http://lists.iptel.org/mailman/listinfo/serusers<BR>&gt;&gt; <BR>&gt; <BR>&gt; 
<BR>&gt; _______________________________________________<BR>&gt; Serusers 
mailing list<BR>&gt; serusers@lists.iptel.org<BR>&gt; 
http://lists.iptel.org/mailman/listinfo/serusers<BR>&gt; <BR>&gt; <BR>&gt; 
<BR>&gt; <BR>&gt; <BR>&gt; <BR>&gt; 
_______________________________________________<BR>&gt; Serusers mailing 
list<BR>&gt; serusers@lists.iptel.org<BR>&gt; 
http://lists.iptel.org/mailman/listinfo/serusers</DIV></BODY></HTML>