One night I was drinking a pint at a local bar and struck up a conversation with the chap next to me. As it turned out, not only was he a fellow developer, but he also used Solr a lot. As we got to talking about how awesome Solr was, he mentioned something that I’ve never been able to figure out. He said, “The way to make Solr really perform is to have it run in memory.”
Alas, I did not get his name and despite googling for an answer, I’ve never really found anything concrete. What do you think he meant by this?
Running SOLR in memory is really pointless. SOLR is meant to be a webserver where clients can query using RESTless api. You can set up replication to compensate for high traffic. SOLR wraps Lucene. If you want to run SOLR in memory then you are basically running Lucene in memory. So I would suggest just start an instance of Lucene and have the disk be in memory. I am curious to know what others think but running SOLR in memory is really not intended use. With Lucene there is a Directory implemented in memory called RAMDirectory.
There was also a similar question a while back about running SOLR embedded mode but after a while Apache deprecated the embedded server stuff because that was really what Lucene was for.