[Seaside] Increasing the performances of a Seaside application

Levente Uzonyi leves at elte.hu
Sun May 29 02:06:14 UTC 2011


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, if
> and only if the database client library supports asynchronous queries,
> SqueakDBX will work asynchronously. Basically, we do a loop where we ask the
> 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.


Levente

>
> http://www.squeakdbx.org/documentation/Asynchronous%20queries
>
> Eliot implemented a multi-threaded FFI for Cog but so far I am not sure if
> it is already working.
>
> Cheers
>
> -- 
> Mariano
> http://marianopeck.wordpress.com
>


More information about the seaside mailing list