: I have a quick question about using solrj to connect to multiple slaves.
: My application is deployed on multiple boxes that have to talk to
: multiple solr slaves.  In order to take advantage of the queryResult
: cache, each request from one of my app boxes should be redirected to the
: same solr slave.
i've never once worried about "session affinity" when dealing with Solr 
... if a query is common/important enough that it's going to be a cache 
hit, it will probably be a cache hit on all the servers.  besides which: 
just because two queries come from the same client doesn't mean they have 
anything to do with eachother - i'm typically just as likely to get the 
same query from two differnet clients as i am twice fro mthe same client.  

if you want to worry about smart load balancing, try to load balance based 
on the nature of the URL query string ... make you loard balancer pick 
a slave by hashing on the "q" param for example.

the one situation where i worry about sending certain traffic to some Solr 
boxes and other traffic to other Solr boxes is when i know that the client 
apps have very differnet query usage patterns ... then i have two seperate 
tiers of Slaves -- identical indexes, but different solrconfigs.  the 
clients that hit my custon faceting plugin use one tier with a big custom 
cache and filterCache.  the clients that do more traditional searching 
using dismax hit a second tier which has no custom cache, a smaller 
filterCache and a bigger queryResultCache ... but even then i don't worry 
about session IDs ... i just configure the two client applications with 
different DNS aliases.




-Hoss

Reply via email to