<br><br><div class="gmail_quote">On Sun, Jan 10, 2010 at 9:49 PM, John Toohey <span dir="ltr"><<a href="mailto:jt@parspro.com">jt@parspro.com</a>></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't been able to do proper stress tests yet, as I'm still wrapping up functionality, but based on what I've read, I decided that using a SP to perform the updates would be faster. <div>
<br></div></blockquote><div><br>Ok. That'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 "is it ready?" until the query is done So, we have "little locks". 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 "at the same time.". Se the method DBXPlatform >> 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 "OpenDBX, when possible" because it not depends only in OpenDBX but also in the client library. Some support this and some doesn'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"><<a href="mailto:marianopeck@gmail.com" target="_blank">marianopeck@gmail.com</a>></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"><<a href="mailto:jt@parspro.com" target="_blank">jt@parspro.com</a>></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'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 "should" "freeze". 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'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"><<a href="mailto:marianopeck@gmail.com" target="_blank">marianopeck@gmail.com</a>></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"><<a href="mailto:jt@parspro.com" target="_blank">jt@parspro.com</a>></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'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"><<a href="mailto:marianopeck@gmail.com" target="_blank">marianopeck@gmail.com</a>></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"><<a href="mailto:jt@parspro.com" target="_blank">jt@parspro.com</a>></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'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't wrote any Gofer plugin and I even don'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: 'MetacelloRepository';<br> package: 'ConfigurationOfSqueakDBX';<br> load.<br><br>((Smalltalk at: #ConfigurationOfSqueakDBX) project version: '1.0') load.<br>
<br><br>And for GlorpDBX:<br><br>Gofer new<br>
squeaksource: 'MetacelloRepository';<br>
package: 'ConfigurationOfGlorpDBX';<br>
load.<br>
<br>
((Smalltalk at: #ConfigurationOfGlorpDBX) project version: '1.0') 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: '1.0') load: 'GlorpDBXWithNativePostgreSQLNativeDriver'<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: 'Glorp';<br>
package: 'ConfigurationOfGlorpDBX';<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>