Instructions for building Riak from source are available here:
https://wiki.basho.com/display/RIAK/Installing+Riak+from+Source

You will want to follow the instructions "Installing from Bitbucket".


Daniel Reverri
Developer Advocate
Basho Technologies, Inc.
d...@basho.com


On Wed, Jun 23, 2010 at 2:43 PM, Jon Meredith <jmered...@basho.com> wrote:

> Hi Tamas,
>
> Are you using the 0.11.0 release?  We found an issue with the multi backend
> a few days ago detailed here http://issues.basho.com/show_bug.cgi?id=274 .
>  It should be fixed in tip after this change
> http://bitbucket.org/basho/riak/changeset/bf66258beaac
>
> You'll have to build from source source and check if that resolves your
> issue?
>
> --Jon Meredith
> Basho Technologies
>
>
> On 6/23/10 12:36 PM, Tamas Nagy wrote:
>
>> Hi,
>>
>> Thanks for the link. Should I create a ticket there from this thread?
>>
>> Well the error I saw was this (actually a lot of these because of the
>> restarts):
>>
>> =ERROR REPORT==== 23-Jun-2010::12:40:34 ===
>> ** State machine<0.201.0>  terminating
>> ** Last message in was {riak_kv_bitcask_backend,merge_check}
>> ** When State == active
>> **      Data  == {state,0,[],riak_kv_multi_backend,
>>                      {state,
>>                          [{riak_ets,riak_kv_ets_backend,<0.203.0>},
>>                           {riak_bitcask,riak_kv_bitcask_backend,
>>                               {#Ref<0.0.0.762>,"data/bitcask/0"}}],
>>                          riak_ets},
>>                      not_in_handoff,undefined}
>> ** Reason for termination =
>> ** {function_clause,
>>        [{riak_kv_vnode,handle_info,
>>             [{riak_kv_bitcask_backend,merge_check},
>>              active,
>>              {state,0,[],riak_kv_multi_backend,
>>                  {state,
>>                      [{riak_ets,riak_kv_ets_backend,<0.203.0>},
>>                       {riak_bitcask,riak_kv_bitcask_backend,
>>                           {#Ref<0.0.0.762>,"data/bitcask/0"}}],
>>                      riak_ets},
>>                  not_in_handoff,undefined}]},
>>         {gen_fsm,handle_msg,7},
>>         {proc_lib,init_p_do_apply,3}]}
>>
>> So as you can see riak_kv_vnode cannot handle riak_kv_bitcask_backend
>> messages ({riak_kv_bitcask, Whatever}) if the backend type is
>> riak_kv_multi_backend. There is simply no case for it in the handle_info
>> callback of riak_kv_vnode module. In the current handle_info cases the Mod
>> tag of the message has to be the same as the value of the state's mod
>> element. One of the possible fixes relaxes this check.
>>
>> Regards,
>>     Tamas
>>
>> ----- "Dan Reverri"<d...@basho.com>  wrote:
>>
>>
>>
>>> Hi Tamas,
>>>
>>>
>>> You can find the public bug tracker here:
>>> https://issues.basho.com/
>>>
>>>
>>> Regarding using Bitcask with multiple backends, the only issue I've
>>> seen is trying to setup multiple bitcask backends. Bitcask defines
>>> options using the "bitcask" application specification which is
>>> globally set for the node; this prevents multiple instances of the
>>> bitcask backend from running on a single node:
>>> https://issues.basho.com/show_bug.cgi?id=210
>>>
>>>
>>> You should be able to run a bitcask backend along side other backend
>>> types such as dets.
>>>
>>>
>>> I did not completely follow your description; what issues did you see
>>> after setting bitcask as a backend in the multibackend options? Were
>>> keys not stored? Did you see errors in the log files? Did you try to
>>> setup multiple bitcask backends?
>>>
>>>
>>> Thanks,
>>> Dan
>>>
>>> Daniel Reverri
>>> Developer Advocate
>>> Basho Technologies, Inc.
>>> d...@basho.com
>>>
>>>
>>>
>>> On Wed, Jun 23, 2010 at 1:45 PM, Tamas Nagy<
>>> tamas.n...@erlang-solutions.com>  wrote:
>>>
>>>
>>> Hi,
>>>
>>> I'm pretty new to the list (and riak) so please forgive my ignorance
>>> but I didn't manage to find a public bugtracker for riak. Hence I'm
>>> posting my problem here. (Bitbucket and Internet Explorer(using it not
>>> by choice) do not mix well. So that might be the problem why I didn't
>>> find it).
>>>
>>> I've tried to use riak_kv_multi_backend with one of the backends being
>>> the riak_kv_bitcask_backend. This does not seem to work with
>>> riak-0.11.0. I checked tip as well, and I do not think it would work
>>> either. The problem boils to these few lines (code snippets from tip):
>>>
>>> riak_kv_vnode:
>>>
>>> handle_info({Mod, Msg}, StateName, #state { mod = Mod } = StateData)
>>> ->
>>>    Mod:handle_info(StateData#state.modstate, Msg),
>>>    {next_state, StateName, StateData, ?TIMEOUT}.
>>>
>>> riak_kv_bitcask_backend:
>>>
>>> start(Partition, _Config) ->
>>>    %% Schedule sync (if necessary)
>>>    case application:get_env(bitcask, sync_strategy) of
>>>        {ok, {seconds, Seconds}} ->
>>>            SyncIntervalMs = timer:seconds(Seconds),
>>>            erlang:send_after(SyncIntervalMs, self(),
>>>                              {?MODULE, {sync, SyncIntervalMs}});
>>>        _ ->              ok    end,
>>>    %% Schedule merge checks
>>>    erlang:send_after(?MERGE_CHECK_INTERVAL, self(), {?MODULE,
>>> merge_check}),
>>>
>>>
>>> riak_kv_multi_backend:
>>>
>>> handle_info(State, Msg) ->
>>>    F = fun(_Name, Module, SubState) ->
>>>                Module:handle_info(SubState, Msg)
>>>        end,    [F(X) || X<- State#state.backends],
>>>    ok.
>>>
>>> If riak_kv_multi_backend is configured in riak_kv_vnode the state's
>>> mod is riak_kv_multi_backend but the messages scheduled in
>>> riak_kv_bitcask_backend are going to have riak_kv_bitcask_backend as
>>> their Mod tag.
>>>
>>> With my limited understanding about the rest of the sytem it seems to
>>> me that adding this case to riak_kv_vnode would fix the problem:
>>> handle_info({Mod, Msg}, StateName, #state { mod =
>>> riak_kv_multi_backend } = StateData) ->
>>>    riak_kv_multi_backend:handle_info(StateData#state.modstate, Msg),
>>>    {next_state, StateName, StateData, ?TIMEOUT};
>>>
>>> It is a bit wasteful because all the configured backends will get
>>> called with this message, but it is the best I can think of without
>>> leaking too much information about the specific backends into the
>>> generic code.
>>>
>>> Modifying the handle_info case would work as well however one check
>>> would need to disappear:
>>>
>>> handle_info({_ModTag, Msg}, StateName, #state { mod = Mod } =
>>> StateData) ->
>>>    Mod:handle_info(StateData#state.modstate, Msg),
>>>    {next_state, StateName, StateData, ?TIMEOUT}.
>>>
>>> There are a plethora of other ways to fix this like passing the Mod
>>> tag to riak_kv_multi_backend so that it can filter based on it (this
>>> is probably my favourite as it is not wasteful and there aren't many
>>> code changes needed either):
>>> riak_kv_vnode:
>>> handle_info({Mod, Msg}, StateName, #state { mod =
>>> riak_kv_multi_backend } = StateData) ->
>>>    riak_kv_multi_backend:handle_info(StateData#state.modstate, {Mod,
>>> Msg}),
>>>    {next_state, StateName, StateData, ?TIMEOUT};
>>>
>>> riak_kv_multi_backend:
>>> handle_info(State, {Mod, Msg}) ->
>>>    F = fun(_Name, Module, SubState) ->
>>>                Module:handle_info(SubState, Msg)
>>>        end,    [F(X) || X = {_, Module, _}<- State#state.backends,
>>> Module =:= Mod],
>>>    ok.
>>>
>>> Code is not tested, but should compile. :)
>>>
>>> Regards,
>>>    Tamas
>>>
>>> --
>>> Tamas Nagy
>>> Erlang Solutions Ltd.
>>> http://www.erlang-solutions.com
>>> ---------------------------------------------------
>>>
>>> ---------------------------------------------------
>>>
>>> WE'VE CHANGED NAMES!
>>>
>>> Since January 1st 2010 Erlang Training and Consulting Ltd. has become
>>> ERLANG SOLUTIONS LTD.
>>>
>>> www.erlang-solutions.com
>>>
>>>
>>> _______________________________________________
>>> riak-users mailing list
>>> 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
>
_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to