<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jun 15, 2020 at 10:22 PM Gabriel Ortiz Lour <<a href="mailto:ortiz.admin@gmail.com">ortiz.admin@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi all,<div><br></div><div>  I was looking around cdr batch mode and I think that should be two signalling functions:</div><div><br></div><div>ast_cdr_batch_start();<br></div><div>ast_cdr_batch_finish();<br></div><div><br></div><div>This two functions would tell all the BackEnds about the batch mode happening, so in the PGSQL backend the CDR loading could be done in a single COPY sql command, which is much faster than single INSERTs</div><div><br></div><div>Sounds like a small addition for having a much faster CDR insertion</div><div><br></div><div>Gabriel Ortiz</div><div><br></div><div><br></div></div></blockquote><div><br></div><div>Hi Gabriel,</div><div><br></div><div>Sounds like a good idea.  </div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div></div><div><br></div><div>The do_batch_backend_process would look like this:</div><div>static void *do_batch_backend_process(void *data)<br></div><div>{<br> struct cdr_batch_item *processeditem;<br> struct cdr_batch_item *batchitem = data;<br><br>    ast_cdr_batch_start();<br><br>      /* Push each CDR into storage mechanism(s) and free all the memory */<br> while (batchitem) {<br>           post_cdr(batchitem->cdr);<br>          ast_cdr_free(batchitem->cdr);<br>              processeditem = batchitem;<br>            batchitem = batchitem->next;<br>               ast_free(processeditem);<br>      }<br><br>   ast_cdr_batch_finish();<br><br>     return NULL;<br>}<br></div></div>
-- <br></blockquote><div><br></div><div>To make this work, I think you'd have to modify cdr_beitem to have 2 new callbacks, then you'd have to create a new version of ast_cdr_register() that accepts callbacks for the batch_start and batch_end functions.  Then ast_cdr_batch_start() and ast_cdr_batch_end() would iterate over the registered backends and call those calkbacks if they existed.  Should be easy (for the core cdr part anyway).</div><div><br></div><div>Will you be submitting Gerrit reviews for this feature?</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
_____________________________________________________________________<br>
-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" rel="noreferrer" target="_blank">http://www.api-digital.com</a> --<br>
<br>
asterisk-dev mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
   <a href="http://lists.digium.com/mailman/listinfo/asterisk-dev" rel="noreferrer" target="_blank">http://lists.digium.com/mailman/listinfo/asterisk-dev</a></blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr" style="font-size:12.8px"><div dir="ltr" style="font-size:12.8px"><div style="font-family:tahoma,sans-serif;font-size:small"><span style="color:rgb(7,55,99)">George Joseph</span><br></div></div><div dir="ltr" style="font-size:small"></div><div style="font-family:tahoma,sans-serif;font-size:small"><span style="color:rgb(7,55,99)">Asterisk Software Developer</span><br></div><span style="color:rgb(7,55,99);font-family:tahoma,sans-serif;font-size:small">direct/fax +1 256 428 6012</span><br><div style="font-family:tahoma,sans-serif;font-size:small"><font color="#073763" style="--darkreader-inline-color:#97cdf8;">Check us out at</font> <a href="http://www.sangoma.com/" style="color:rgb(17,85,204)" target="_blank">www.sangoma.com</a> and <a href="http://www.asterisk.org" target="_blank">www.asterisk.org</a><br></div><div style="font-family:tahoma,sans-serif;font-size:small"><img src="cid:ii_k3abte590" alt="image.png" width="184" height="32" style="margin-right: 0px;"></div></div></div></div></div></div></div></div></div>