<div dir="ltr">Ok I will test flatstore and will see how it goes if I try to insert into real DB using some other process (May be some script which will check for new records in loop)<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 12, 2015 at 4:06 PM, Bogdan-Andrei Iancu <span dir="ltr"><<a href="mailto:bogdan@opensips.org" target="_blank">bogdan@opensips.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<div><tt>John,<br>
<br>
Using "exec" has its own penalties - the exec itself is CPU
consuming as the Operating System has to create a new process
each time. Os it is not I/O, but it is CPU (system time).<br>
<br>
For the accounting part, I still recommend the flatstore as the
most efficient approach. <br>
<br>
Regards,<br>
</tt><span class="">
<pre cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a href="http://www.opensips-solutions.com" target="_blank">http://www.opensips-solutions.com</a></pre></span><div><div class="h5">
On 12.01.2015 11:55, John Nash wrote:<br>
</div></div></div><div><div class="h5">
<blockquote type="cite">
<div dir="ltr">OK..I think doing accounting in exec makes perfect
sense.<br>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Mon, Jan 12, 2015 at 2:36 PM,
Bogdan-Andrei Iancu <span dir="ltr"><<a href="mailto:bogdan@opensips.org" target="_blank">bogdan@opensips.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<div><tt>Hi John,<br>
<br>
Indeed, depending on the nature of the query, some
answers can be cached, other not. If not, you need to
be sure your DB server is as efficient as possible in
answering.<br>
Accounting via flatstore file can be realtime (data is
written in RT into file and you can rote them when you
need).<br>
<br>
The next 2.1 is the first OpenSIPS version supporting
Async I/O ops. There are many kinds of I/O ops and
used in many places. It is hard to add async support
for all of them from the day one. The current plan is
to have support for exec module, for rest_client
module and possible for some mysql queries.<br>
In the worst case, you can push your DB queries into
external scripts and use the "exec" module with the
async support.<br>
<br>
Best regards,<br>
</tt><span>
<pre cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a href="http://www.opensips-solutions.com" target="_blank">http://www.opensips-solutions.com</a></pre>
</span>
<div>
<div> On 11.01.2015 15:48, John Nash wrote:<br>
</div>
</div>
</div>
<div>
<div>
<blockquote type="cite">
<div dir="ltr">
<div>
<div>
<div>Hello Bogdan,<br>
<br>
</div>
Thank you. Cache features are really good and
I am using for Register and Invite auth but I
need to run a query to find out allowed
duration for a call (unfortunately caching
cannot be used in that). Also Accounting I am
afraid has to be real time in my case.<br>
<br>
</div>
I think i should look forward to version 2.X
till the features I need are there. Any guess
how long full featured development version will
be out?<br>
<br>
</div>
John<br>
<div>
<div><br>
<br>
<br>
<br>
<br>
</div>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Sat, Jan 10, 2015 at
1:16 AM, Bogdan-Andrei Iancu <span dir="ltr"><<a href="mailto:bogdan@opensips.org" target="_blank">bogdan@opensips.org</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<div><tt>Hi Nash,<br>
<br>
It is somewhere in the middle :). Of
course the DB ops will bring some
penalties to the performance, so you
need to take care and tune your DB for
the best performance (not to drag down
opensips). With db ops is very common in
OpenSIPS scripts, so you do not do
anything crazy or stupid there.<br>
<br>
Of course, you should look into
optimizing the DB ops you use:<br>
- DB auth - use caching at script
level (see <a href="http://www.opensips.org/Documentation/Tutorials-MemoryCaching" target="_blank">http://www.opensips.org/Documentation/Tutorials-MemoryCaching</a>)<br>
- ACC - consider using db_flatstore
to avoid writing into a real DB<br>
- dialog - if not really a must use
db modes 2 or 3 (<a href="http://www.opensips.org/html/docs/modules/1.11.x/dialog.html#id294001" target="_blank">http://www.opensips.org/html/docs/modules/1.11.x/dialog.html#id294001</a>)<br>
<br>
Regards,<br>
</tt>
<pre cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a href="http://www.opensips-solutions.com" target="_blank">http://www.opensips-solutions.com</a></pre>
<div>
<div> On 09.01.2015 20:19, John Nash
wrote:<br>
</div>
</div>
</div>
<blockquote type="cite">
<div>
<div>
<div dir="ltr">
<div>
<div>
<div>
<div>
<div>I have used opensips
for load balancing and
some border proxy+
NAT+rtpproxy in past and
am quite happy with it.
Recently I decided to add
DB operations (Auth and
accounting, routing and
dialog into it so that
heavy lifting of VOIP
network can be given to
opensips. I wanted to send
call to PBX only when it
is really needed (Like
voicemail and conference
etc)<br>
<br>
</div>
But in a long time I saw
this article <a href="http://www.opensips.org/Documentation/TroubleShooting-FindPerfPb" target="_blank">http://www.opensips.org/Documentation/TroubleShooting-FindPerfPb</a>
<br>
<br>
</div>
As per this tutorial I think
if any DB operation is slow,
it will hit overall
performance (I mean the
transactions which do not
require DB can also be stuck).<br>
<br>
</div>
I know good engineers at
openisps have already figured it
out and working on 2.X version
but looks like it will take a
while so that I can give it a
try (As dialog is not in current
release).<br>
<br>
</div>
With 1.X series + DB auth/acc +
dialog should I reconsider my
approach or there are systems
running successfully and I am just
being paranoid?<br>
<br>
</div>
John<br>
<div>
<div>
<div>
<div>
<div><br>
<br>
<div>
<div>
<div><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
<fieldset></fieldset>
<br>
</div>
</div>
<pre>_______________________________________________
Users mailing list
<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a>
</pre>
</blockquote>
<br>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</div></div></div>
</blockquote></div><br></div>