Hi, I have been studying how server software responds to requests that cause CPU overloads (such as infinite loops).
In my experiments I have observed that Solr performs unusually well when subjected to such loads. Every other piece of web software I've experimented with drops to zero service under such loads. Do you know how Solr achieves such good performance? I am guessing that when Solr is overload sheds load to make room for incoming requests, but I could not find any documentation that describes Solr's overload strategy. Experimental setup: I ran Solr 3.1 on a 12-core machine with 12 GB ram, using it index and search about 10,000 pages on MediaWiki. I test both Solr+Jetty and Solr+Tomcat. I submitted a variety of Solr queries at a rate of 300 requests per second. At the same time, I submitted "overload requests" at a rate of 60 requests per second. Each overload request caused an infinite loop in Solr via https://issues.apache.org/jira/browse/SOLR-2631. With Jetty about 70% of non-overload requests completed --- 95% of requests completing within 0.6 seconds. With Tomcat about 34% of non-overload requests completed --- 95% of requests completing within 0.6 seconds. I also ran Solr+Jetty with non-overload requests coming in 65 requests per second (overload requests remain at 60 requests per second). In this workload, the completion rate drops to 15% and the 95th percentile latency increases to 25. Cheers, Mike Gagnon