[Seaside] Increasing the performances of a Seaside application
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.
> Eliot implemented a multi-threaded FFI for Cog but so far I am not sure if
> it is already working.
More information about the seaside