<br><br><div class="gmail_quote">On Sun, Jan 10, 2010 at 9:49 PM, John Toohey <span dir="ltr">&lt;<a href="mailto:jt@parspro.com">jt@parspro.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
My app is a private one, with about 30+ users are a given time, however, its must be responsive for all these users, as they are updating markets prices etc. When a market closes, I need to updates a few thousand records, and during that time, I cannot have the image *frozen*, as it would effect the other users, in a time critical application. I haven&#39;t been able to do proper stress tests yet, as I&#39;m still wrapping up functionality, but based on what I&#39;ve read, I decided that using a SP to perform the updates would be faster.  <div>

<br></div></blockquote><div><br>Ok. That&#39;s perfect. However, let me remark something. As you may know, SqueakDBX uses FFI to talk to OpenDBX. FFI locks THE COMPLETE VM while the C function is being executed. And that cannot be change. What you can change is try to do those functions as little time as possible. Imagine a query and that the function does not return until the query is done. THAT will freeze the image for a long time. However, we have a better strategy. <br>
<br>OpenDBX, when possible, uses asynchronous queries. This means that it just calls a function to send the query, and then, it loops asking &quot;is it ready?&quot;  until the query is done So, we have &quot;little locks&quot;. The goods news is that after asking, if there are other process in the queue, it should be processed. With this way we process several queries &quot;at the same time.&quot;.  Se the method   DBXPlatform &gt;&gt; processNextResultSet: aConnection querySettings: aQuerySettings<br>
<br>where we do:     (code = OpenDBX resultTimeout) ifTrue: [ (Delay forMilliseconds: (aQuerySettings timeout asMiliseconds)) wait  ].<br>            <br><br>I invite you to read the slides: <a href="http://www.slideshare.net/esug/squeak-dbx">http://www.slideshare.net/esug/squeak-dbx</a><br>
There I explain this comparing SqueakDBX against ODBC driver for squeak.<br><br>I said &quot;OpenDBX, when possible&quot;  because it not depends only in OpenDBX but also in the client library. Some support this and some doesn&#39;t. But I think most engines support this. I know PostgreSQL does. BTW, which OS are you deploying on ?<br>
<br>Cheers<br><br>Mariano<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div></div><div>Did I misunderstand this?<div><div></div>
<div class="h5"><br><br><div class="gmail_quote">On Sun, Jan 10, 2010 at 15:27, Mariano Martinez Peck <span dir="ltr">&lt;<a href="mailto:marianopeck@gmail.com" target="_blank">marianopeck@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br><br><div class="gmail_quote"><div>On Sun, Jan 10, 2010 at 9:23 PM, John Toohey <span dir="ltr">&lt;<a href="mailto:jt@parspro.com" target="_blank">jt@parspro.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Nice, I didn&#39;t notice these on the site before. Seem OpenDBX wins easily with inserts to Postgres. Unfortunately, because of the image freezing during a large amount of updates/inserts, </blockquote></div><div><br>Can you explain me this a bit more? The image &quot;should&quot; &quot;freeze&quot;. Actually, the queries are running in a most important priority than the UI. However, for example you have a Seaside website, and there comes another request from another user and sends a query to the database, it should also process this new request. <br>


 </div><div><div></div><div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I&#39;m going to a stored procedure for that. <div><div><div>
</div><div>
<br><br><div class="gmail_quote">On Sun, Jan 10, 2010 at 14:56, Mariano Martinez Peck <span dir="ltr">&lt;<a href="mailto:marianopeck@gmail.com" target="_blank">marianopeck@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">



<br><br><div class="gmail_quote"><div>On Sun, Jan 10, 2010 at 5:51 PM, John Toohey <span dir="ltr">&lt;<a href="mailto:jt@parspro.com" target="_blank">jt@parspro.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">




Thanks, this is what I wanted. It takes time to build a new image from scratch, so I want to use Gofer to install Seaside, Glorp, my code etc. I wanted to get a script that was tested and would give me the latest builds. Just wondering if you have an benchmarks on using the Native driver with the GlorpDBX. I&#39;m going into production soon, and still am not sure what way to go. <div>




<div></div><div><br></div></div></blockquote></div><div><br>Hi John. There are becnhmarks for SqueakDBX agains native drivers, but not related with GlorpDBX. Although, if one driver is faster, it make sense that GLorp is faster too using that driver.<br>




<br>The SqueakDBX benchmarks  were of the first things we did when we start SqueakDBX. You can read this link: <a href="http://www.squeakdbx.org/Benchmarks" target="_blank">http://www.squeakdbx.org/Benchmarks</a><br><br>



You can run them by yourself and compare. <br>
<br>Ask if you need help with that :)<br><br>Cheers<br><font color="#888888"><br>Mariano<br> </font></div><div><div></div><div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">



<div><div>

<br><div class="gmail_quote">On Sat, Jan 9, 2010 at 17:41, Mariano Martinez Peck <span dir="ltr">&lt;<a href="mailto:marianopeck@gmail.com" target="_blank">marianopeck@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">





<br><br><div class="gmail_quote"><div>On Sat, Jan 9, 2010 at 11:24 PM, John Toohey <span dir="ltr">&lt;<a href="mailto:jt@parspro.com" target="_blank">jt@parspro.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">






Have you made a Gofer script to install the latest GloprDBX and Postgres driver on the latest RC1 Pharo images? I&#39;m trying to create a full Gofer script that will build my entire app from a Pharo DEV image. <br clear="all">







<br></blockquote></div><div><br>Hi John. I didn&#39;t wrote any Gofer plugin and I even don&#39;t have it in mind. The future of SqueakDBX and GlorpDBX packages managment will be with Metacello.<br><br>So far, you have in the repository MetacelloRepository in squeakspurce, two packages: ConfigurationOfSqueakDBX and ConfigurationOfGlorpDBX. The second one, right now it install GlorpDBX and the SqueakDBX driver, NOT the PostgreSQL native driver. If this is what you want, maybe I can add a group to metacello conf.<br>






<br>Right now, to install SqueakDBX you have to evaluate:<br><br>Gofer new<br>    squeaksource: &#39;MetacelloRepository&#39;;<br>    package: &#39;ConfigurationOfSqueakDBX&#39;;<br>    load.<br><br>((Smalltalk at: #ConfigurationOfSqueakDBX) project version: &#39;1.0&#39;) load.<br>






 <br><br>And for GlorpDBX:<br><br>Gofer new<br>
    squeaksource: &#39;MetacelloRepository&#39;;<br>
    package: &#39;ConfigurationOfGlorpDBX&#39;;<br>
    load.<br>
<br>
((Smalltalk at: #ConfigurationOfGlorpDBX) project version: &#39;1.0&#39;) load.<br>
<br>If you really need to load GlorpDBX with Postgresql native driver, than I can create a group so that you will be able to evaluate:<br><br>((Smalltalk at: #ConfigurationOfGlorpDBX) project version: &#39;1.0&#39;) load: &#39;GlorpDBXWithNativePostgreSQLNativeDriver&#39;<br>








<br>Do you need that?<br><br>In addition, the loaders we wrote some time ago, should be running:<br><br>Gofer new<br>

    squeaksource: &#39;Glorp&#39;;<br>

    package: &#39;ConfigurationOfGlorpDBX&#39;;<br>

    load.<br> <br>GlorpPharoLoader loadGlorpWithNativePostgreSQLDriver<br><br><br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">



-- <br><font color="#888888">-JT<br><br><br>
</font></blockquote></div><br>
</blockquote></div><br><br clear="all"><br></div></div>-- <br><font color="#888888">-JT<br><br><br>
</font></blockquote></div></div></div><br>
</blockquote></div><br><br clear="all"><br></div></div>-- <br>-JT<br><br><br>
</div>
</blockquote></div></div></div><br>
</blockquote></div><br><br clear="all"><br></div></div>-- <br>-JT<br><br><br>
</div>
</blockquote></div><br>