Permalink
Switch branches/tags
Commits on Apr 23, 2018
Commits on Mar 22, 2018
  1. Add participate_in_2i_coverage riak option (#917)

    russelldb committed Mar 22, 2018
    Allows marking of nodes 'down' in calculations for 2i coverage
    queries.  In create_plan, it queries each node for the value of the
    participate_in_2i_coverage and treats those with the value set
    explicitly to `false` as 'down' for the calculation of avaiable
    vnodes.
    
    See related riak_kv commit that adds a default value to the KV schema.
    This is an operator feature. The operator must bring down the node,
    change the config, and start the node, for it to have effect.
  2. Add `node_confirms` default bucket props (#915)

    russelldb committed Mar 22, 2018
    * Added default (0) for new pd bucket option.
    PD = Physical diversity. See changes in riak_kv for full details.
    
    * Add pd option to prop resolve.
    
    * Rename 'pd' bucket property to 'node_confirms'
    
    * Move `node_confirms` to version specific props
    
    See bug report nhs-riak/kv9. This commit moves the node_confirms
    property into a version specific list/function. It changes the list
    concatenation to be shortest list as the left-hand-operand (erlang docs
    say this is faster
    http://erlang.org/doc/efficiency_guide/listHandling.html). Why not,
    since I was in here futzing around.
    
    NOTE: I kept with the existing `defaults/0` and `defaults/1` rather than
    the discussed "new_defaults" or "post_transition_defaults" as I was
    unclear where, if anywhere, `defaults/1` was called. `defaults/0` is
    implicitly "post-transition defaults" already.
    
    * Update deps for upstream
Commits on Feb 27, 2018
  1. Fix claim tail violations and unbalanced rings (#913)

    russelldb committed Feb 27, 2018
    * Fix claim tail violations and unbalanced rings
    
    This commit squashes together some fixes for riak_core claim. There is
    a full write up in docs/claim-fixes.md.
    
    In brief: In some situations riak_core_claim can produce rings that
    have tail violations. A tail violation is where some preflists (drawn
    from the tail of the ring) do not enforce the target-n-val property.
    One example is ring using the old claim diag for 16 vnodes and 5
    nodes. Such a ring would have a tail of 1. The last two preflists from
    that ring would be [5, 1, 1] and [1, 1,2] both of which would mean >1
    replica on a single node. These "tail-violations" are addressed.
    
    A further issue with claim was that distributing existing claim to a
    new node could result in an unbalanced ring. An example would be
    adding a 5th node to a 32 vnode ring of 4 nodes. The distribution went
    from [8, 8, 8, 8] to [6, 6, 6, 8, 6] . Before assigning vnodes claim
    calculates "deltas" as a measure of how many vnodes each node wants or
    should give up. Prior to the change, for this example the deltas were
    [2, 2, 2, 2, -6] which means "you can 2 partitions from each of 4
    nodes in order to provide 6 on the 5th". Claim would be greedy and
    take all 2 from each of the first 3 nodes and stop. This fix balances
    the deltas before claim so that they always equal the wants of the
    claiming node(s). For the example the deltas would be [2, 2, 1, 1, -6]
    ensuring that the final balance of vnodes will be [6, 6, 7, 7, 6].
    These "unbalanced rings" are fixed.
    
    NOTE: there may still be ways to get bad rings with "leave" commands,
    as this is still not tested
    
    * Write up recent claim work
    
    * Fix specs for dialyzer
    
    Some mild renaming/refactoring for better reading (I got confused while
    figuring out dialyzer errors and these names made more sense when I
    re-read it.)
Commits on Feb 20, 2018
  1. Fix brops intermittent test failures (#911)

    russelldb committed Feb 20, 2018
    * Add some extra output in case of monitor timeout
    
    On ubuntu 16.04/basho10 there is a reliable and repeatable failure of
    bprops_eqc. The call to stop_id fails with a timeout. This change adds
    some extra information to that error message to help fix the test
    
    * Kill pid that won't exit
    * Wait for killed pid to exit
    Avoid "already_started" errors in setup
Commits on Mar 3, 2017
  1. Bump exometer_core

    bsparrow435 committed Mar 3, 2017
Commits on Mar 2, 2017
  1. Merge pull request #901 from basho/bjs/merge-2.0-to-2.2

    bsparrow435 committed Mar 2, 2017
    Bring 2.0 bug fixes to 2.2
Commits on Feb 22, 2017
Commits on Jan 12, 2017
  1. Merge pull request #886 from basho/bjs-riak-2772-2.0.8

    ian-mi committed Jan 12, 2017
    add nodenames to the merge_meta comparison
  2. Merge pull request #887 from basho/bjs-overload-sync-command-hang

    JeetKunDoug committed Jan 12, 2017
    Fix potential hang due to vnode proxy overload bug [JIRA: RIAK-3124]
  3. Merge pull request #893 from basho/bjs/enhancement/log_ring_reconcile

    JeetKunDoug committed Jan 12, 2017
    Fix RIAK-2643 by adding debug logging for meta and ring
  4. Merge pull request #894 from basho/bjs/bugfix/fix_dropped_vnode_requests

    JeetKunDoug committed Jan 12, 2017
    Fix RIAK-2169 by fixing stat name `dropped_vnode_requests`
Commits on Jan 11, 2017
  1. Fix RIAK-2169, error with counter 'dropped_vnode_requests' -- was inc…

    sargun authored and bsparrow435 committed Sep 17, 2015
    …orrectly named dropped_vnode_requests_total, which is the stats projection
  2. Fix RIAK-2643 by adding debug logging for meta and ring

    bsparrow435 committed Jan 11, 2017
    There have been a few issues where rapidly updating the ring results in
    sub optimal behavior. These have been difficult to debug due to the
    lack of logging in the `riak_core_ring` module. We’ve added debug
    logging which can be enabled as needed to log ring metadata
    merges(buckets, real, etc) and ring membership and resulting rings from
    a reconciliation. For 2.2.1, we should add a new lager sink just for
    logging ring operations.
Commits on Dec 13, 2016
  1. Fix potential hang due to vnode proxy overload bug

    nickelization authored and bsparrow435 committed Dec 13, 2016
    If we call riak_core_vnode_master:sync_spawn_command, it ends up sending
    a gen_event all-state event to the proxy for forwarding. However, in
    handle_overload, the old code only had case clauses for '$gen_event' and
    not '$gen_all_state_event'. This means the event would be passed to
    handle_overload_info instead of handle_overload_request, which would
    likely skip the vnode callback code that sends a response.
    
    In Riak this meant that certain operations would hang during overload,
    since the caller to sync_spawn_command would never be sent a response.
    (This situation was made worse by the fact that the call is being done
    with an infinity timeout, but that's an issue we'll have to address some
    other time.)
Commits on Dec 8, 2016
Commits on Nov 7, 2016
  1. Set riak_ensemble version to 2.1.5

    Brett Hazen
    Brett Hazen committed Nov 7, 2016
  2. Set eleveldb version to 2.0.32

    Brett Hazen
    Brett Hazen committed Nov 7, 2016
Commits on Oct 11, 2016
  1. Updated dependencies

    fadushin committed Oct 11, 2016
Commits on Sep 30, 2016
  1. Merge pull request #864 from basho/bjs-jobswitches-debug

    bsparrow435 committed Sep 30, 2016
    Switch affirmative request logging from info to debug log [JIRA: RIAK-2797]
  2. Change affirmative request logging to debug level

    bsparrow435 committed Sep 30, 2016
  3. Lock deps for riak 2.2.0

    Brett Hazen
    Brett Hazen committed Sep 30, 2016
Commits on Sep 22, 2016
  1. updated lager dependency

    fadushin committed Sep 22, 2016
Commits on Sep 21, 2016
  1. Merge pull request #862 from basho/feature-bjs-lager3.2.1

    borshop committed Sep 21, 2016
    Update to lager 3.2.1
    
    Reviewed-by: javajolt
  2. Update to lager 3.2.1

    bsparrow435 committed Sep 21, 2016
Commits on Sep 20, 2016
  1. Merge pull request #861 from basho/jv-feature-use_ets_for_riak_core_t…

    borshop committed Sep 20, 2016
    …hrottle
    
    Use ETS table instead of application environment variables in riak_core_throttle
    
    Reviewed-by: fadushin
  2. Fix Dialyzer errors

    jvoegele committed Sep 20, 2016
  3. Use ETS table instead of application environment variables in riak_co…

    jvoegele committed Sep 20, 2016
    …re_throttle
    
    Previously, `riak_core_throttle` had used application environment
    variables for maintaining its state. However, due to race conditions
    that manifested during application shutdown, errors would occur that
    prevented applications from shutting down cleanly. By replacing the use
    of application environment variables with ETS tables instead, we avoid
    these errors and shutdown cleanly.
    
    Because `riak_core_throttle` is not itself a process, it cannot own its
    underlying ETS table. Thus, the `riak_core_table_owner` gen_server
    process was introduced for this purpose.
Commits on Sep 15, 2016
  1. Merge pull request #859 from basho/fd-elevedb-bump

    borshop committed Sep 15, 2016
    Bumped eleveldb to 2.0.29
    
    Reviewed-by: javajolt
  2. Bumped eleveldb to 2.0.29

    fadushin committed Sep 15, 2016