(disclaimer: i'm writing this all from memory, maybe there was some code change at some point that i'm not aware of and i'm completley wrong)
: I've always understood the "on deck" searcher(s) being the same as the : warming searcher(s). So you have the "active" searcher and them the warming : or on deck searchers. IIRC there is a subtle but significant distinction between "ondeck" searchers and warming searchers -- namely: there is only ever one (ondeck) searcher being warmed at a time, but there can be multiple ondeck searchers *WAITING* to be warmed. maxWarmingSearchers is in hindsight not the greatest name for that cnfig option -- because there's never more then one searcher being warmed at a time. it esentially means "max number of searchers i'm willing to let queue up to be warmed" Or to elaborate and put it all in context: * There is only ever (at most) one "current" searcher: ** when a request comes in, it grabs a refrence to the current searcher ** when a "newSearcher" event finishes, the "current" searcher can be replaced, but the (previous) searcher stays open as long as there are requests in progress that have references to it ** for this reason: there can be multiple "active" searchers in use * There can be any number of searchers ondeck: ** an ondeck searcher is created when a "newSearcher" event starts ** ondeck searchers can be "warmed up" based on the caches of the "current" searcher, during which time they are considered a "warming searcher" ** "warming" happens i na single threaded executor -- so if there are multiple ondeck searchers, only one of them at a time is ever a "warming" searcher ** multiple ondeck searchers can be a sign of a potential performance problem (hence the log warning) because it means Solr knows you are (currently) actively warming a seacher pointed at some commit point which solr already knows is stale and plans to open another searcher immediatley after it -- ie: commits are happening more frequently then searchers can be warmed. If you imagine a a scenerio where: * search requests that take over 10 seconds happen continuously all day * caches are sized such that warming a newSearcher takes 20 seconds * you set maxWarmingSearchers=15 * openSearcher=true commits happen once per second Then if i'm not mistaken you would be in a situation where there would be 10 "active" searchers (the newest of which is "current"), 15 "ondeck" searchers (the oldest of which would be currently be a "warming" searcher -Hoss http://www.lucidworks.com/