I am trying to make use of search in a Riak 1.0.0 cluster loaded with some data using the leveldb backend through the multibackend, with search turned, and I am having some trouble.
I am getting the following error: 2011-10-21 20:47:49.268 [error] emulator Error in process <0.32444.102> on node 'riak@10.214.219.175' with exit value: {{nocatch,stream_timeout},[{riak_search_op_utils,gather_stream_results,4}]} The Ruby client dies with a EOFError: end of file reached. There are also a few of these in the logs: 2011-10-21 20:47:45.624 [info] <0.88.0>@riak_core_sysmon_handler:handle_event:85 monitor long_gc <0.32535.102> [{initial_call,{mi_server,range,10erator/2-fun-1-',2}}] [{timeout,51},{old_heap_block_size,0},{heap_block_size,1346269},{mbuf_size,0},{stack_size,13},{old_heap_size,0},{heap_size,931549}] 2011-10-21 20:47:45.873 [info] <0.88.0>@riak_core_sysmon_handler:handle_event:85 monitor long_gc <0.32523.102> [{initial_call,{mi_server,range,10ator,2}}] [{timeout,54},{old_heap_block_size,0},{heap_block_size,2103540},{mbuf_size,0},{stack_size,19},{old_heap_size,0},{heap_size,903282}] I tracked down the issue to part of my query where I try to limited the results by time using a range. Depending how the query is generated, I may want a specific range, or records with a timestamp less than some value or timestamps greater than some value. I found that if I limited the timestamps to a range that covers a reasonable number of records the query succeeds. But if the query is of the form 'ts:[0 TO 1319228408]', then Riak generates that error and the client connection it shutdown. I am guessing that that queries covers too many records, which is causing the nodes to take longer than expected to respond, and that some timeout is being reached and Riak kills the query. Is that correct? If so, is there a way to execute a query matching an integer field with a < or > that may match many records (millions)? Is there a way to increase whatever timeout is being reached? Also, while looking at the Solr query syntax I notice that you can use '*' instead of trying to use a min or max value in the range to emulate < or >, e.g. 'ts:* TO 1319228408]', but Riak does not support this syntax. Elias Levy
_______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com