On Wed, 2008-04-09 at 02:05 +0200, Henrik Nordstrom wrote: > tis 2008-04-08 klockan 17:55 -0600 skrev Alex Rousskov: > > is worth the bugs and complexity we are _removing_. Also, the future SMP > > support may operate within the same nothing-is-immediate problem space. > > In other words, let's get used to it! :-) > > Note: For SMP to work out you want as few hops between CPUs per > transaction. Moving data from one CPU to the other is quite costly, > effectively stalling the other CPU. To perform you want the CPUs to > process unrelated transactions in parallel. The fewer things the CPUs > has to say to each other the better. Additionally shared locks is the > worst case of this as they stall every CPU in the system to synchronize > the state..
Yes, but that is about what async jobs you place where and what jobs you tell them to communicate with. The job code should not change whether it is talking to another job on the same or different CPU. Thus, every async bug we squash now will not bite us when we start allocating jobs to CPUs and threads. There is also a question on how to preserve call order or, more precisely, how to draw the boundaries where the call order is preserved. This is something the current async code does not expose us to because there is only one async call queue. That is a different topic though :-). Alex.