Multithreading
Daniel Salama
dsalama at user.net
Mon Mar 28 14:53:10 UTC 2005
On Mar 28, 2005, at 9:42 AM, Alan Knight wrote:
> The scenario you presented talks about 1000 transactions a day. That's
> one every minute and a half. They're probably not evenly distributed,
> and there'll be peak load periods, but say that amounts to one every
> five seconds. You still hardly need any threading. I don't work with
> Squeak, or with Seaside, but in VisualWorks, with a very similar
> threading model, trivial page displays start to be a performance issue
> once you get a couple of hundred per second. I note that Cincom also
> has ObjectStudio, a Windows-native Smalltalk that uses Windows
> threads. Things that work very well in VisualWorks using lots of
> threads will crash Windows very quickly using native threads.
>
Exactly. The transactions are not evenly distributed (and BTW, it's
10,000 not 1,000). Peak transactions occur at maybe 90-120 requests
per second and then long periods of inactivity (it's the nature of my
client's business). So, during peak times, I may need more horse power.
> The primary thing to be careful of is things that block the entire VM.
> So if you have a call out to a database, or another external system
> you want to make sure that other processes can run while it's in
> progress. You also may have the issue that with two CPU's, a single
> Squeak image can only effectively use one of them. This is less of an
> issue if you have other stuff running on the same box.
>
The application does in fact call out to the database as well as,
during user interaction, verification with external systems using XML
and SOAP. I don't know if these may be blocking calls and if so, I
guess I will need to loop into sub-processing these requests.
Comments?
Thanks,
Daniel
More information about the Squeak-dev
mailing list
|