On Wed, Dec 21, 2011 at 21:04, Ciprian Dorin Craciun
<[email protected]> wrote:
> On Thu, Dec 15, 2011 at 17:42, Jeremy Raymond <[email protected]> wrote:
>> Hello,
>>
>> Are calls to the client riakc_pb_socket server blocking if I'm reusing the
>> same Pid across multiple threads? The pb_socket server will only process one
>> request at a time?
>>
>> --
>> Jeremy


    (The pevious email was "truncated"... :) )

    Disclaimer: I've only roughly used the `riak_erlang_client` library,
so take my opinion with a grain of "doubt".

    From what I've seen by quickly looking into the Erlang code, it seems that:
    * one request will block the client process (as it uses normal
 `gen_server:call` function);
    * but two requests from different processes don't "block" the
 `riakc_pb_socket` process, as
    * internally there is a queue of pending requests, handled in FIFO way;
    * but if a lot of requests queue there and stay more than the
timeout option for `gen_server:call` I think they are still going to
be serviced way after you've received a timeout error in your code;
(this has to be investigated);

    My solution is to create a pool of `riakc_pb_socket` and
round-robin through them.

    Hope this helps a bit,
    Ciprian.

_______________________________________________
riak-users mailing list
[email protected]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to