This is an attribute in the <locking /> configuration element and is used to define the number of lock stripes used by the LockManager, *if* striped locking is used.
Now I wonder whether we need a tuning parameter of this sort in the data container as well. Consider that the SimpleDataContainer is backed by a CHM and the FIFO and LRU variants are backed by something very similar to a CHM (in that there are lockable segments which contain hash tables). In both cases, I use default concurrency levels (16 segments), but maybe this should be configurable too? Should this be a separate attribute, or could "concurrencyLevel" be reused here?
The way I see it, LockManager needs a higher number of stripes since transactions could span keys that are in > 1 stripe. Segments, however, are only locked for the duration of a write access to the container which is a) typically very short and b) usually limited to the number of active threads, which is related to the number of cores/CPUs.
Basically, what I am saying is that the latter could probably be guessed/hard coded rather than made configurable, and even if made configurable, is unlikely to be the same as the number of stripes used by the LockManager.
Thoughts/comments?
--
Manik Surtani
Lead, JBoss Cache