Hey all,

we want to avoid cold start performance issues when the caches are cleared 
after a server restart.

For this, we have written a SearchComponent that saves least recently used 
queries. These are
written to a file inside a closeHook of a SolrCoreAware at server shutdown.

The plan is to perform these queries at server startup to warm up the caches. 
For this, we have
written a derivative of the QuerySenderListener and configured it as 
firstSearcher listener in
solrconfig.xml. The only difference to the origin QuerySenderListener is that 
it gets it's queries
from the formerly dumped lru queries rather than getting them from the config 
file.

It seems that everything is called correctly, and we have the impression that 
the query response
times for the dumped queries are sometimes slightly better than without this 
warming.

Nevertheless, there is still a huge difference against the times when we 
manually perform the same
queries once, e.g. from a browser. If we do this, the second time we perform 
these queries they
respond much faster (up to 10 times) than the response times after the 
implemented warming.

It seems that not all caches are warmed up during our warming. And because of 
these huge
differences, I doubt we missed something.

The index has about 25M documents, and is splitted into two shards in a cloud 
configuration, both
shards are on the same server instance for now, for testing purposes.

Does anybody have an idea? I tried to disable lazy field loading as a potential 
issue, but with no
success.


Cheers,

Christian

Reply via email to