We currently have a single sphinx instance and its starting to hit
capacity.  In growing it I'd like to also introduce some high
availability as well (everything else in our environment is already
redundant with automatic fail over).

So I setup three separate sphinx instances on three different nodes,
and setup haproxy on all of the clients.  Port 3321 is accessed
locally, but just does a request to one of the sphinx instances.
Using the 'search' binary everything looks great, I can run a search
with any permutations and get back the expected results.  I can also
see the traffic distributed as expected.

Now, it gets interesting.  ThinkingSphinx acts like searchd is not
there.  When I dig deeper it looks like all the way down at Riddle it
seems that it can connect fine, but none of the responses have
anything Riddle is expecting (in fact they look empty to Riddle).
Heres an example of the flow from console:

>> sphinx = ThinkingSphinx::Configuration.send(:new, Rails.root)
=> #<ThinkingSphinx::Configuration:0x2ac584362d00 ... >
>> sphinx.version
=> "0.9.8"
>> riddle = sphinx.client
=> #<Riddle::Client:0x2ac584357a18 @overrides={},
@group_function=:day, @index_weights={}, @weights=[], @limit=20,
@cut_off=0, @max_matches=10000, @field_weights={}, @group_by="",
@socket=nil, @anchor={}, @sort_by="", @server="127.0.0.1",
@group_distinct="", @max_query_time=0, @filters=[], @offset=0,
@retry_delay=0, @sort_mode=:relevance, @port=3312, @queue=[],
@select="*", @group_clause="@group desc", @timeout=0,
@rank_mode=:proximity_bm25, @id_range=0..0, @retry_count=0,
@match_mode=:all>
>>
?> riddle.send(:connect) do |socket|
?>   socket.send([5, 0x100, 4, 1].pack('nnNN') + 'status', 0)
>>   header = socket.recv(8)
>>   header.unpack('n2N')
>> end
=> [nil, nil, nil]
>>


Its probably some subtle config param in my haproxy configuration, but
its really weird that the search binary behaves properly but riddle
just crashes and burns.  Any one have any advice or directions on this
one?

-- 
You received this message because you are subscribed to the Google Groups 
"Thinking Sphinx" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/thinking-sphinx?hl=en.

Reply via email to