Denis, there was no discussion on dev list. Do not worry, Son of the Earth, you are all right :) I thought I would send letter a bit later when I finish the full scope of optimizations I have in plan.
Currently, I use striped pool only for cache messages that are targeted to some defined partition - cache update benchmarks showed very good growth in throughput. I tried to switch public and system pool to striped mode, but I get a lot of hangs on TC - sometimes due to issues in tests sometimes due to issues in Ignite. For example, under some circumstances we can synchronously wait in system thread for some message to come. When message handler gets to the same stripe Ignite hangs. I have a list of such places discovered so far. After I fix them I will try re-approach the pools. Another reason for not switching to striped pool completely is that stripes are good for cache updates and single or batched get operations since they reduce inter-thread communication and synchronization to minimum, however I think that we should run, for example, SQL queries in old fashioned pools - first, they can fallback to scanning random data, second, we pause cache updates in some partition for query execution time. I was thinking of splitting CPU resources between striped pool and system pool in some ratio. I will follow up on this in a couple of days and will explain what has been done and what I want to do. Vladimir, I hope I responded to your points. Thanks! --Yakov