<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://git.reviewboard.kde.org/r/111513/">http://git.reviewboard.kde.org/r/111513/</a>
     </td>
    </tr>
   </table>
   <br />



 <p>Ship it!</p>



 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Preliminary tests show that this actually does help. Pushing a large amount of text now no longer results in a big memory jump for virtuoso. Though virtuoso still seems to be some minor increases over time, but this is a MAJOR improvement.

Unfortunately, most of nepomuk no longer uses addStatement calls and prepares the insert calls on their own. Oh well, I can at least change that for the plain text.

Thanks for doing this Sebastian. Please commit it to the 2.9 branch, that way I can make a new bug fix release and push distros to adopt it.</pre>
 <br />









<p>- Vishesh</p>


<br />
<p>On July 15th, 2013, 8:08 a.m. UTC, Sebastian Trueg wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Nepomuk and Vishesh Handa.</div>
<div>By Sebastian Trueg.</div>


<p style="color: grey;"><i>Updated July 15, 2013, 8:08 a.m.</i></p>






<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Soprano uses only plain query strings for all operations via ODBC (Virtuoso). However, parameterized queries can provide a much better performance, especially for long string values. This patch (available in branch feature/odbcParameterizedQueries) makes Soprano use parameterized queries for addStatement at least.

This should fix the memory leaking problem with adding large plain text blobs given that addStatement is used (AFAIK the Nepomuk indexer currently uses custom queries to add the data).

Should this patch proove to be effective it should be expanded to use parameterized queries wherever possible like removeStatement. Also using prepared ODBC queries could improve the performance considerably, especially when adding a large amount of statements.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Soprano tests run through smoothly. More performance and mem leakage testing needs to be done using Nepomuk.</pre>
  </td>
 </tr>
</table>




<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>backends/virtuoso/odbcconnection.h <span style="color: grey">(c87bcb7)</span></li>

 <li>backends/virtuoso/odbcconnection.cpp <span style="color: grey">(754c76d)</span></li>

 <li>backends/virtuoso/virtuosomodel.cpp <span style="color: grey">(a884703)</span></li>

 <li>backends/virtuoso/virtuosomodel_p.h <span style="color: grey">(d5a86d8)</span></li>

</ul>

<p><a href="http://git.reviewboard.kde.org/r/111513/diff/" style="margin-left: 3em;">View Diff</a></p>







  </td>
 </tr>
</table>








  </div>
 </body>
</html>