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