AnsweredAssumed Answered

Solr4 query threading beaviour

Question asked by chkk on Jan 20, 2017
Latest reply on Jan 25, 2017 by chkk

I have observed an unexpected behaviour in my Alfresco installation when doing advanced searches. The site has an complex advanced search form with about 30 criteria, many of them multi-valued picked from multi-selection lists.


When I do a search with a couple of criteria selected with a user with admin rights, the search executes in about 11-15 seconds, which is not great (only a couple of thousand documents in the system) but acceptable. I followed tuning advice I found for the JVM, Solr4 and Postgres, did hardly make any difference.


When I execute exactly the same advanced search query as a non-admin user, the execution time is 55-60 seconds, which is way too slow.


When monitoring the server during query execution, I noticed to my surprise that the query by an admin is loading 3-4 CPU cores of the VM ("top" CPU load shown as 350%), while the non-admin query seems to run as a single thread (about 105% load shown in "top"). Which seems to explain the difference in execution time. 


I checked out Alfresco and Solr tuning guidelines, rebuilt the index, nothing made a difference.  One additional info: "alfresco.doPermissionChecks" is set to false in the solrcore properties as any user is allowed to search in this system. I did not find any Solr4 or Alfresco parmeters which would explain the threading behaviour to me.


This is on Alfresco 5.2.0 (Community 2016-11). Hosted on a VMware server with currently 4 cores and 24 GB memory assigned (used to be 8 GB, temporarily increased for testing for bottlenecks).


Thanks for any advice,