I apologize, I was wrong about the timeouts -- they are configurable, either 
through the client, or in the advanced config on the Riak server(s).

The timeout gets set in the server here:

https://github.com/basho/yokozuna/blob/2.1.1/src/yz_pb_admin.erl#L114 
<https://github.com/basho/yokozuna/blob/2.1.1/src/yz_pb_admin.erl#L114>

This means you can set the timeout in the PB client, as in

riakc_pb_socket:create_search_index(Pid, Index, Schema, [{timeout, Timeout}, 
...])

where timeout is in milliseconds (or the atom 'infinity').

cf. http://basho.github.io/riak-erlang-client/ 
<http://basho.github.io/riak-erlang-client/>

The order of precedence is:

1. client-defined
2. riak config
3. default (45 seconds)

-Fred

> On Sep 2, 2015, at 8:13 AM, Fred Dushin <fdus...@basho.com> wrote:
> 
> What is the return value you are getting from 
> rick_pb_socket:create_search_index?  If it's ok, then the Solr cores should 
> have been created on all nodes.  Otherwise, you should check the logs for 
> timeout messages, e.g.,
> 
> https://github.com/basho/yokozuna/blob/2.1.1/src/yz_index.erl#L443 
> <https://github.com/basho/yokozuna/blob/2.1.1/src/yz_index.erl#L443>
> 
> If you are getting timeouts, instead of sleeping, you should probably query 
> your cluster for the search index, along the lines of what is done in one of 
> the riak tests, e.g.,
> 
> https://github.com/basho/yokozuna/blob/2.1.1/riak_test/yz_pb.erl#L100 
> <https://github.com/basho/yokozuna/blob/2.1.1/riak_test/yz_pb.erl#L100>
> 
> If necessary, you might want to fold over all nodes in your cluster, to 
> ensure the index has been propagated to all nodes, and possibly use the 
> wait_for patterns used in the tests.
> 
> Unfortunately, it looks like the internal timeout used to wait for 
> propagation of indexes to all nodes is not configurable -- it defaults to 45 
> seconds:
> 
> https://github.com/basho/yokozuna/blob/2.1.1/include/yokozuna.hrl#L134 
> <https://github.com/basho/yokozuna/blob/2.1.1/include/yokozuna.hrl#L134>
> 
> I hope that helps,
> 
> -Fred
> 
>> On Sep 2, 2015, at 6:27 AM, Hao <jusf...@163.com <mailto:jusf...@163.com>> 
>> wrote:
>> 
>> Hi,
>> 
>> What's the maximum seconds to wait after creating an search index and before 
>> setting it on the bucket?
>> 
>> On my local machine, I only need to wait 1 second, sometimes I feel I don't 
>> need to wait at all, but on a production server which is basically zero 
>> traffic, I have to wait about 10 seconds(definitely over 5s) before I can 
>> set the index on a bucket.
>> 
>> I am using riakc_pb_socket client. At first I thought something wrong with 
>> my function to "create" and "set" the index but then when I split the 
>> process, it's fine. So seems it's the interval in between that matters.
>> 
>> I need to know how long is the maximum because I need to restore a lot of 
>> buckets and set index on them via a script. I don't care how long it takes 
>> but I don't want it to miss any index not being set on the bucket.
>> 
>> The exact error on the console when I set the index on a bucket is
>> 
>> <<"Invalid bucket properties: [{search_index,\n 
>> <<\"application_test_player_idx does not exist\">>}]">>
>> 
>> 
>> 
>> 
>> Thanks,
>> 
>> 
>> 
>> -- 
>> Hao
>> 
>> 
>> 
>> _______________________________________________
>> riak-users mailing list
>> riak-users@lists.basho.com <mailto:riak-users@lists.basho.com>
>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
> 

_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to