Isolating The Search Engine
Searching and indexing can be resource-intensive processes.
Co-locating solr
with the Content Engine can
therefore sometimes prove to be a bad idea, especially in the case of
presentation hosts, which may need to respond to
large numbers of simultaneous searches and ordinary document requests.
However, since the Content Engine, solr
and the
indexer
are all independent web applications that
communicate via standard, stateless HTTP requests, you can locate them
wherever you want in order to achieve the best possible load
distribution.
The following sections describe two different ways of isolating the search engine:
-
Running the search engine in a separate webapp container.
-
Running the search engine on a separate host.
For a production system you should never
use the default configuration where solr
runs in
the same webapp container as the Content Engine. The
reason for this is that solr
can at times consume
large amounts of memory and trigger large garbage collection
operations in the JVM, which has severe effects on Content Engine
performance. At production installations, solr
must be run in a separate JVM from the
Content Engine if you don't want to run into unnecessary
performance problems. The simplest way to achieve this is to run it
in a separate webapp container (that is, a separate Tomcat instance)
as described in Search Engine in Separate Container.