Hi,

Thanks for the discussion. We use the distributed option so I am not sure
embedded is possible.

As you also guessed, we use haproxy for load balancing and failover between
replicas of the shards so giving this up for a minor performance boost is
probably not wise.

So essentially we have: User -> HTTP Load Balancer -> Mogrel Cluster ->
Haproxy -> N x Solr Shards

and it looks like that is the standard setup for performance from what you
suggest here and most of the performance tweaks I thought of are already in
use.

Ian.

On Fri, Sep 18, 2009 at 3:09 AM, Erik Hatcher <erik.hatc...@gmail.com>wrote:

>
> On Sep 18, 2009, at 1:09 AM, rajan chandi wrote:
>
>> We are planning to use the external Solr on tomcat for scalability
>> reasons.
>>
>> We thought that EmbeddedSolrServer uses HTTP too to talk with Ruby and
>> vise-versa as in acts_as_solr ruby plugin.
>>
>
> EmbeddedSolrServer is a way to run Solr as an API (like Lucene) rather than
> with any web container involved at all.  In other words, only Java can use
> EmbeddedSolrServer (which means JRuby works great).
>
> The acts_as_solr plugin uses the solr-ruby library to communicate with
> Solr.  Under solr-ruby, it's HTTP with ruby (wt=ruby) formatted responses
> for searches, and documents being indexed get converted to Solr's XML format
> and POSTed to the Solr URL used to open the Solr::Connection
>
>        Erik
>
>
>
>
>> If Ruby is not using the HTTP to talk EmbeddedSolrServer, what is it
>> using?
>>
>> Thanks and Regards
>> Rajan Chandi
>>
>> On Thu, Sep 17, 2009 at 9:44 PM, Erik Hatcher <erik.hatc...@gmail.com
>> >wrote:
>>
>>
>>> On Sep 17, 2009, at 11:40 AM, Ian Connor wrote:
>>>
>>>  Is there any support for connection pooling or a more optimized data
>>>> exchange format?
>>>>
>>>>
>>> The solr-ruby library (as do other Solr + Ruby libraries) use the ruby
>>> response format and eval it.  solr-ruby supports keeping the HTTP
>>> connection
>>> alive too.
>>>
>>> We are looking at any further ways to optimize the solr
>>>
>>>> queries so we can possibly make more of them in the one request.
>>>>
>>>> The JSON like format seems pretty tight but I understand when the
>>>> distributed search takes place it uses a binary protocol instead of
>>>> text.
>>>> I
>>>> wanted to know if that was available or could be available via the ruby
>>>> library.
>>>>
>>>> Is it possible to host a local shard and skip HTTP between ruby and
>>>> solr?
>>>>
>>>>
>>> If you use JRuby you can do some fancy stuff, like use the javabin update
>>> and response formats so no XML is involved, and you could also use Solr's
>>> EmbeddedSolrServer to avoid HTTP.   However, in practice rarely is HTTP
>>> the
>>> bottleneck and actually offers a lot of advantages, such as easy
>>> commodity
>>> load balancing and caching.
>>>
>>> But JRuby + Solr is a very beautiful way to go!
>>>
>>> If you're using MRI Ruby, though, you don't really have any options other
>>> than to go over HTTP. You could use json or ruby formatted responses -
>>> I'd
>>> be curious to see some performance numbers comparing those two.
>>>
>>>      Erik
>>>
>>>
>>>
>


-- 
Regards,

Ian Connor
1 Leighton St #723
Cambridge, MA 02141
Call Center Phone: +1 (714) 239 3875 (24 hrs)
Fax: +1(770) 818 5697
Skype: ian.connor

Reply via email to