[Seaside] Increasing the performances of a Seaside application
Mariano Martinez Peck
marianopeck at gmail.com
Sun May 29 12:02:17 UTC 2011
On Sun, May 29, 2011 at 4:06 AM, Levente Uzonyi <leves at elte.hu> wrote:
> On Sat, 28 May 2011, Mariano Martinez Peck wrote:
>>> What are the errors that I must avoid making ?
>>> AFAIK SqueakDBX uses FFI which to my understanding means that it calls
>>> block the entire VM. That reduces the amount of concurrency a single
>>> image can handle. It also makes a connection pool more important.
>>> Yes, FFI blocks the whole VM while a functions is being called. However,
>> and only if the database client library supports asynchronous queries,
>> SqueakDBX will work asynchronously. Basically, we do a loop where we ask
>> backend if the query was ready. If it was not, we do a yield (we let other
>> process of the image to run) and then continue the loop.
> FYI: The expression "Processor yield" doesn't let all processes run, just
> those which have the same priority. So using it in a loop starves all lower
> priority processes and results in busy waiting.
Thanks. I was not clear. What we actually do is:
(code = OpenDBX resultTimeout) ifTrue: [ (Delay forMilliseconds:
(aQuerySettings timeout asMiliseconds)) wait ].
Is that better? Even if it lets just run processes of the same priority,
this is good anyway because what we want is at least be able to process
other queries. Probably, those other processes are being done from other
>> Eliot implemented a multi-threaded FFI for Cog but so far I am not sure if
>> it is already working.
> seaside mailing list
> seaside at lists.squeakfoundation.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the seaside