Permalink
Switch branches/tags
Commits on Sep 9, 2016
Commits on Nov 11, 2015
  1. Merge pull request #794 from basho/merge/2.0_to_2.1_for_hashtree_fixes

    borshop committed Nov 11, 2015
    Merge hashtree fixes from 2.0.
    
    Reviewed-by: zeeshanlakhani
Commits on Nov 10, 2015
Commits on Oct 13, 2015
  1. Merge pull request #789 from basho/feature/bch/upgrade-lager-to-2.2.0

    borshop committed Oct 13, 2015
    Upgrade lager version to 2.2.0
    
    Reviewed-by: cuyler
  2. Upgrade lager version to 2.2.0

    Brett Hazen
    Brett Hazen committed Oct 13, 2015
Commits on Aug 14, 2015
  1. Merge pull request #770 from basho/basho/merge-forward-2.0-g806e857-t…

    borshop committed Aug 14, 2015
    …o-2.1
    
    Basho/merge forward 2.0 g806e857 to 2.1
    
    Reviewed-by: jonmeredith
Commits on Aug 13, 2015
  1. Merge pull request #767 from basho/bugfix/jdm/vnode-proxy-stuck-in-ov…

    borshop committed Aug 13, 2015
    …erload-v2
    
    Vnode proxy stuck in overload state
    
    Reviewed-by: cmeiklejohn
  2. Dropped the messages sent in the happy path case.

    jonmeredith committed Aug 13, 2015
    On the builders, sending more than threshold messages could
    cause overload.  This should *never* overload.
Commits on Aug 12, 2015
  1. Merge pull request #769 from basho/merge-2.0-gdce213c-to-2.1

    borshop committed Aug 12, 2015
    Merge 2.0 gdce213c to 2.1
    
    Reviewed-by: jonmeredith
  2. Merge branch '2.0' into merge-2.0-gdce213c-to-2.1

    jonmeredith committed Aug 12, 2015
    From 2.0 branch commit gdce213c
  3. Fix for heavily overloaded vnode proxies that stay stuck in overload

    jonmeredith committed Aug 12, 2015
    after recovery until possibly thousands of messages are sent.
    
    As the mailbox is only an estimate, simplify by not including the
    vnode proxy ping/pong in it - there is no need.  The ping/pong
    mechanism will now just track proxied requests being completed.
    
    Previously the mailbox estimate grew incorrectly when in the overload
    state.  Now the estimate is only updated when messages are proxied.
    
    If the proxy has to perform a hard check on the msgq len, *do*
    include the ping message as part of it so that the estimate will
    be correct once the ping/pong happens.
    
    QuickCheck test added for riak_test to exercise more than the
    unit tests.
Commits on Aug 11, 2015
  1. Merge pull request #765 from basho/bugfix/jrd/727

    borshop committed Aug 11, 2015
    Address default bucket type defaults in the absence of riak.conf
    
    Reviewed-by: mrallen1
  2. Merge pull request #764 from basho/bugfix/jrd/join-race

    borshop committed Aug 11, 2015
    Do not allow node to join cluster when still launching
    
    Reviewed-by: cmeiklejohn
  3. Merge pull request #762 from basho/feature/new-utility-functions

    borshop committed Aug 11, 2015
    Add new utility functions to riak_core_util
    
    Reviewed-by: javajolt
  4. Merge pull request #758 from basho/bugfix/bch/cleanup_verify_membackend

    borshop committed Aug 11, 2015
    Fix verify_memorybackend in riak_test for RIAK-2061
    
    Reviewed-by: mrallen1
  5. Merge pull request #766 from basho/bugfix/bch/pin-eleveldb

    borshop committed Aug 11, 2015
    Pin eleveldb version to 2.0.7 for riak_core 2.0 branch
    
    Reviewed-by: mrallen1
  6. Make riak_core_vnode_proxy send ping after directly checking the mail…

    jonmeredith committed Aug 8, 2015
    …box size.
    
    When starting up fallbacks that receive a lot of load (e.g. in riak_kv
    when a node running bitcask restarts it only starts primaries before
    marking the service as up, fallbacks are started on demand and if there
    is a large keydir already on the node, it may take several minutes to
    start while queuing up requests).
    
    The vnode is receiving messages from other sources than the vnode proxy
    (possibly messages to trigger handoff from the vnode manager if the
    primary recovers) and does not respond to the ping message before the
    direct message queue length check is invoked.  The msgq is over the
    threshold and leaves the vnode proxy in overload, but also ignores
    the eventual response from the ping message.
    
    If enough requests go through the vnode proxy it will do another direct
    check, however if this happens after the primary is back in service then
    the message volume is much lower (probably just handoff folds), significantly
    delaying (possibly by many hours) the start of a handoff.
    
    This fix immediately sends a ping message after a direct check as the vnode
    was overloaded enough not to respond to the ping in 2500 requests.  When
    the vnode responds to the ping message it will adjust the mailbox check and
    reset the counter for a new soft check.  This should bring the vnode proxy
    out of overload much sooner.
    
    Here's a reproducer to play with the proxy code.
    
    ```
    %% Provoke the nastiness
    PPid = whereis(proxy_riak_kv_vnode_0).
    {ok, VPid} = riak_core_vnode_proxy:command_return_vnode({riak_kv_vnode,0,node()}, timeout).
    Report = fun() -> io:format("PPid = ~p with ~p messages. VPid = ~p with ~p messages\n", [PPid, element(2, process_info(PPid, message_queue_len)), VPid, element(2, process_info(VPid, message_queue_len))]) end.
    sys:suspend(PPid),
    sys:suspend(VPid),
    [spawn(fun() -> riak_kv_vnode:local_get(0, {<<"b">>,<<"k">>}) end) || X <- lists:seq(1,15000)].
    Report().
    [spawn(fun() -> catch gen_fsm:sync_send_event(VPid, {ohai, X}, 1) end) || X <- lists:seq(1,15000)].
    Report().
    sys:resume(PPid).
    
    %%% Pause here and enjoy the misery.
    lists:usort([riak_kv_vnode:local_get(0, {<<"b">>,<<"k">>}) || X <- lists:seq(1,2498)]).
    
    sys:resume(VPid).
    Report().
    Report().
    Report().
    Report().
    Report().
    rr(riak_core_vnode_proxy).
    sys:get_status(PPid). % look for check_mailbox > 0
    ```
  7. Better error tuple

    macintux committed Aug 11, 2015
Commits on Aug 10, 2015
Commits on Aug 6, 2015
  1. Add new utility functions to riak_core_util

    jvoegele committed Aug 6, 2015
    * `riak_core_util:compose/2`: Compose two functions.
    * `riak_core_util:compose/1`: Compose all functions in the list.
    * `riak_core_util:multi_keydelete`: Allow for deleting multiple elements
         from a list based on the provided keys. Using `multi_keydelete`
         avoids such silliness as the following:
    
    ```
    List1 = lists:keydelete(...),
    List2 = lists:keydelete(...),
    List3 = lists:keydelete(...),
    ```
Commits on Jul 31, 2015
  1. Fix verify_memorybackend in riak_test

    Brett Hazen
    Brett Hazen committed Jul 31, 2015
    - Add riak_core_vnode:get_modstate/1 to expose underlying module state
      for testing
Commits on Jul 23, 2015
  1. Merge pull request #754 from basho/nem-clique-0.3.2-version-bump

    borshop committed Jul 23, 2015
    Bump clique to version 0.3.2
    
    Reviewed-by: mrallen1
Commits on Jul 10, 2015
  1. Bump clique to version 0.3.2

    nickelization committed Jul 10, 2015
    The new version of clique includes several bugfixes over 0.3.1
Commits on Jul 9, 2015
  1. Merge pull request #751 from basho/dtr/revert_legacy_gossip_removal

    borshop committed Jul 9, 2015
    Revert removal of legacy gossip as it is a breaking API change.
    
    Reviewed-by: jonmeredith
  2. Revert removal of legacy gossip as it is a breaking API change.

    JeetKunDoug committed Jul 9, 2015
    - Found when trying to update MDC to riak_core/2.1
Commits on Jul 7, 2015
  1. Merge pull request #750 from basho/dtr/forward_merge_2.0

    borshop committed Jul 7, 2015
    Forward merge 2.0 to 2.1
    
    Reviewed-by: zeeshanlakhani
Commits on Jul 2, 2015