But again, why do you want to do this? I really think you don't.

I'm assuming that when you say this:
"...resulting in the same slave being hit for all requests."

you mean "all requests _from the same client_". If that's
not what's happening, then disregard my maundering
because when it comes to setting up LBs, I'm clueless. But
I can say that many installations have LBs set up with
sticky sessions on a per-client basis......

Consider another scenario; replication. If you have 2 slaves,
each with a polling interval of 5 minutes note that they are
not coordinated. So slave 1 can poll at 14:00:00. Slave 2
at 14:01:00. Say there's been a commit at 14:00:30. Requests
to slave 2 will have a different view of the index than slave 1,
so if your user resends the exact same request, they may
see different results. I could submit the request 5 times in a
row and the results would not only be different each time, they
would flip-flop back and forth.

I wouldn't do this unless and until you have a demonstrated need.

Best
Erick

On Thu, Sep 27, 2012 at 8:07 AM, Lee Carroll
<lee.a.carr...@googlemail.com> wrote:
> Hi Erick,
>
> the load balancer in front of the solr servers is dropping the cookie not
> the solr server themselves.
>
> are you saying the clients http connection manager builds will ignore this
> state ? it looks like they do not. It looks like the
> client is passing the cookie back to the load balancer
>
> I want to configure the clients not to pass cookies basically.
>
> Does that make sense ?
>
>
>
> On 27 September 2012 12:54, Erick Erickson <erickerick...@gmail.com> wrote:
>
>> What client state? Solr servers are stateless, they don't
>> keep any information specific to particular clients so this
>> doesn't seem to be a problem.
>>
>> What Solr _does_ do is cache things like fq clauses, but
>> these are not user-specific. Which actually argues for going
>> to the same slave on the theory that requests from a
>> user are more likely to have the same fq clauses. Consider
>> faceting on shoes. The user clicks "mens" and you add an
>> fq like &fq=gender:mens. Then the user wants dress shoes
>> so you submit another query &fq=gender:mens&fq=style:dress.
>> The first fq clause has already been calculated and cached so
>> doesn't have to be re-calculated for the second query...
>>
>> But the stickiness is usually the way Solr is used, so this seems
>> like a red herring.
>>
>> FWIW,
>> Erick
>>
>> On Thu, Sep 27, 2012 at 7:06 AM, Lee Carroll
>> <lee.a.carr...@googlemail.com> wrote:
>> > Hi
>> >
>> > We have the following solr http server
>> >
>> > <bean class="org.apache.solr.client.solrj.impl.CommonsHttpSolrServer"
>> > id="solrserver" >
>> > <constructor-arg value="urlToSlaveLoadBalancer" />
>> > <property name="soTimeout" value="1000" />
>> > <property name="connectionTimeout" value="1000" />
>> > <property name="defaultMaxConnectionsPerHost" value="5" />
>> > <property name="maxTotalConnections" value="20" />
>> > <property name="allowCompression" value="true" />
>> > </bean>
>> >
>> > The issue we face is the f5 balancer is returning a cookie which the
>> client
>> > is hanging onto. resulting in the same slave being hit for all requests.
>> >
>> > one obvious solution is to config the load balancer to be non sticky
>> > however politically a "non-standard" load balancer is timescale suicide.
>> > (It is an out sourced corporate thing)
>> >
>> > I'm not keen to use the LB http solr server as i don't want this to be a
>> > concern of the software and have a list of servers etc. (although as a
>> stop
>> > gap may well have to)
>> >
>> > My question is can I configure the solr server to ignore client state ?
>> We
>> > are on solr 3.4
>> >
>> > Thanks in advance lee c
>>

Reply via email to