Permalink
Switch branches/tags
Commits on Jun 11, 2012
  1. Fix issues with previous merge

    jtuple committed Jun 11, 2012
  2. Merge branch 'gh177-staged-clustering' into jdm-merge-staged-clustering

    Resolves merge conflicts between staged clustering and claim sim/claimv3 branches.
    
    Conflicts:
    	src/riak_core.erl
    	src/riak_core_gossip.erl
    	src/riak_core_ring.erl
    jonmeredith committed Jun 11, 2012
Commits on Jun 10, 2012
  1. Merge branch 'jdm-claim-v3'

    jonmeredith committed Jun 10, 2012
  2. Final review cleanups.

    jonmeredith committed Jun 8, 2012
  3. Minor comment tweak.

    jonmeredith committed Jun 5, 2012
  4. Updated wants_claim_v3 to check ownership counts.

    metadata changed by the claim function is not persisted to the
    raw ring.
    Also added a force_claim environment variable to trigger a one
    time reclaim.
    jonmeredith committed May 25, 2012
  5. Added diagonalize method if TN==S that accounts for ring wrap.

    diversify is still used if claimv3 cannot find a plan without
    violations.
    
    Redudece lager:debug output and made it more readable.
    jonmeredith committed May 25, 2012
  6. Added claim_v3 algorithm.

    Claim V3 - unlike the v1/v2 algorithms, v3 treats claim as an optimization problem.
    In it's current form it creates a number of possible claim plans and evaluates
    them for violations, balance and diversity, choosing the 'best' plan.
    
    Violations are a count of how many partitions owned by the same node are within target-n
    of one another. Lower is better, 0 is desired if at all possible.
    
    Balance is a measure of the number of partitions owned versus the number of partitions
    wanted.  Want is supplied to the algorithm by the caller as a list of node/counts.  The
    score for deviation is the RMS of the difference between what the node wanted and what it
    has.  Lower is better, 0 if all wants are mets.
    
    Diversity measures how often nodes are close to one another in the preference
    list.  The more diverse (spread of distances apart), the more evenly the
    responsibility for a failed node is spread across the cluster.  Diversity is
    calculated by working out the count of each distance for each node pair
    (currently distances are limited up to target N) and computing the RMS on that.
    Lower diversity score is better, 0 if nodes are perfectly diverse.
    jonmeredith committed May 24, 2012
  7. Merge branch 'jdm-claim-sim'

    jonmeredith committed Jun 10, 2012
  8. Merge branch 'slf-dtrace-take1'

    Scott Lystig Fritchie committed Jun 10, 2012
Commits on Jun 9, 2012
  1. score_am was incorrectly calculating diversity

    0-count pairs were not being added before calculating RMS.
    During algorithm research a different method of generating
    adjacency_matrix was used so this got by.
    jonmeredith committed May 25, 2012
  2. Updated claim sim to pass target N around.

    Caveat: leave still uses target n from environment,
    too much plumbing changes to hit code freeze.  To use
    set_env(riak_core, target_n_val, blah).
    jonmeredith committed May 24, 2012
  3. Added node join simulator and claim commissioning tests.

    Moved claim logic execution from core_gossip/core_ring to core_claim
    and created versions that take Wants/Choose as arguments.
    
    Simulator is based on Joe's claim simulator - a little more work
    required to isolate it from n_val/target_n in the environment.
    
    Commissioning test runs predefined joins through simulator and
    writes rings/stats to files.
    jonmeredith committed May 24, 2012
Commits on Jun 8, 2012
  1. Refactor enabled/0 to share code with dtrace/1

    Scott Lystig Fritchie committed Jun 8, 2012
  2. Update staged clustering code after review/further testing

    Update claim_v2 to compute claim deltas for non-active owning nodes, to
    handle corner case hit by new staged clustering code.
    
    Change riak_core_ring_manager:ring_trans to allow code to provide a reason
    when ignoring the transaction.
    
    Update riak_core_claimant plan/commit to return reasons for failures.
    
    Fix bug with riak_core_claimant:compute_all_next_rings where two rings were
    considered equal when they were not.
    
    Fix bug with riak_core_ring:future_ring where leaving nodes that still owned
    partitions would incorrectly be changed to the exiting state.
    
    Add code that enables querying and setting handoff concurrency settings.
    jtuple committed Jun 8, 2012
Commits on Jun 5, 2012
Commits on Jun 1, 2012
  1. Merge remote-tracking branch 'origin/rz-dtrace-take1-funs-in-header' …

    …into slf-dtrace-take1
    Scott Lystig Fritchie committed Jun 1, 2012
  2. Merge pull request #179 from basho/rdb-folsomise

    Use folsom stats for riak_core
    russelldb committed Jun 1, 2012
Commits on May 30, 2012
  1. Merge pull request #171 from basho/jdb-capabilities

    Add cluster capability system + API
    Resolves issue #169
    
    -- Provides API to register supported protocols/modes associated
       with a given capability.
    
    -- Auto-negotiates the mode across the cluster, choosing the most
       preferred mode supported by all members.
    jtuple committed May 30, 2012
  2. Change capability code based on code review

    Clean-up code based on review feedback, renaming certain functions and
    variables to be more clear.
    
    Add module level edoc to riak_core_capability.
    
    Change prefer override to default to negotiated modes rather than
    crashing the capability server.
    jtuple committed May 29, 2012
Commits on May 29, 2012
Commits on May 25, 2012
  1. Add `app_helper:try_envs`

    This function allows you to try multiple application envs in a
    particular order and returns a value that allows the caller to
    distinguish where the value came from.  This is useful for the cases
    where application envs have changed across releases.
    rzezeski committed May 25, 2012
  2. Fix 'riak-admin join'

    Fix 'riak-admin join' so that it once again works despite the changes
    made to node joining as part of the new staged clustering changes. This
    is accomplished through the addition of auto-joining logic in the
    claimant that transitions 'joining' nodes to 'valid' nodes that were
    joined to the cluster using the traditional join rather than the newer
    staged join.
    jtuple committed May 25, 2012
  3. Add replace and force-replace cluster operations

    Add support for `replace node new-node` operation that stages a
    request for node to handoff all of its partitions to new-node and
    then leave the cluster. This is similar to a leave, but directs
    handoff to a specific replacement node.
    
    Add support for `force-replace node new-node` operation that stages
    a request that reassigns all partitions owned by node to new-node
    and removes node from the cluster. This is similar to a force-remove,
    but reassigns partitions to a specific replacement node.
    jtuple committed May 23, 2012
  4. Add two-phase/staged approach to cluster administration

    Add staged clustering as discussed in issue #177. This new approach
    to cluster administration operates in two phases. Users first stage
    intended cluster changes (join/leave/remove), then commit the changes
    when ready and satisfied with how those changes will impact the
    cluster. This is supported by turning `riak_core_claimant` into a
    gen_server and adding a new API for scheduling and committing staged
    changes. Also, `riak_core_console` is updated to provide an interface
    to this new API.
    
    Change the claimant logic to no longer automatically transition
    `joining` nodes to `valid` nodes. This change is necessary to support
    staged joining of nodes.
    
    Change the node removal logic to allow use of a provided seed for
    random number generation, to enable the staged clustering system to
    calculate the same removal plan during both the planning and commit
    phases.
    jtuple committed May 12, 2012
Commits on May 24, 2012
  1. Use 2 tuples as stat names, use the app name as the 1st element

    Makes querying easier (select / match on app name)
    russelldb committed May 24, 2012
Commits on May 23, 2012
  1. Moved claimant code from riak_core_ring to riak_core_claimant

    This commit intentionally does not compile. It will be squashed into
    the proceeding commit after development and code review.
    jtuple committed May 11, 2012