Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: jdb-fix-mixed-…
Commits on Jun 29, 2012
  1. Joseph Blomstedt

    Change handoff sender to use RPC to negotiate listener IP

    jtuple authored
    Change the handoff sender to use RPC to query the handoff_ip from the
    handoff listener rather than directly issuing a gen_server call. The
    call approach crashes against older nodes that do not expect a
    handoff_ip message.
  2. Joseph Blomstedt

    Make claimant periodically check for stalled ring and force update

    jtuple authored
    Claimant transitions are triggered by ring update events. However, if
    a ring update event is somehow missed, and the ring reaches a steady
    state, then there will be no more update events and the claimant will
    stall. Likewise, when a older node joins the cluster, there is a race
    between when the capabilities system negotiates that the claimant
    should perform automatic joining and when the claimant transition
    occurs. Thus, the claimant may not properly auto join an older node in
    a mixed cluster.
    
    This is resolved in this commit by having the claimant periodically
    check for a stalled ring and trigger a force update if the ring is
    stalled. A stall is detected by checking if running the claimant logic
    against the current ring would generate a ring that has different
    cluster state than the current ring. If so, it is considered stalled
    and the update forced.
Commits on Jun 27, 2012
  1. Sean Cribbs

    Merge pull request #199 from basho/add-travis-ci

    seancribbs authored
    Add Travis CI hook and build status.
  2. Sean Cribbs
Commits on Jun 26, 2012
  1. Russell Brown
  2. Russell Brown

    Cache stats in ets, only allow one call to Mod:get_stats at a time.

    russelldb authored
    Reintroduce gen_server to riak_core_stat rather than spawn per update
    Due to review, also make stat cache ets table protected.
    Add infinity timeout to stat calculation call
    Doc the TTL param
    Make error response more meaningful
    Expose staleness
    Calculate cache timestamp as early as possible
    Add unit test for the cache
Commits on Jun 25, 2012
  1. Jon Meredith
  2. Jon Meredith
  3. Jon Meredith
Commits on Jun 22, 2012
  1. Joseph Blomstedt

    Merge pull request #193 from basho/jdb-mixed-version-staged

    jtuple authored
    Fix capability bug and fix staged clustering in mixed-version clusters
Commits on Jun 19, 2012
  1. Ryan Zezeski
  2. Joseph Blomstedt

    Default to auto-joining when older nodes join the cluster

    jtuple authored
    Treat old-nodes joining the cluster the same as new nodes joining
    the cluster with the "auto-join" property, since older nodes do
    not support staged joins.
  3. Joseph Blomstedt
  4. Joseph Blomstedt
  5. Ryan Zezeski

    Disable vnode rolling start for test

    rzezeski authored
    The vnode rolling start built into the vnode manager causes a race
    condition in the `all_nodes` call where a vnode is started under the
    sup before the vnode manager sees it.  Thus the children under the sup
    and the vnodes tracked by the manager do not agree.
Commits on Jun 18, 2012
  1. Ryan Zezeski

    Add info for failing post-conditions

    rzezeski authored
    Without this patch the test output will tell you the post-condition
    failed but not which particular check.  Now it will tell you the call
    that failed and why.
Commits on Jun 15, 2012
  1. Scott Lystig Fritchie
Commits on Jun 14, 2012
  1. Joseph Blomstedt

    Merge pull request #191 from basho/jdb-fix-claim-deltas

    jtuple authored
    Fix incorrect merge of claim deltas and default
  2. Joseph Blomstedt
Commits on Jun 13, 2012
  1. Scott Lystig Fritchie
  2. Scott Lystig Fritchie
Commits on Jun 12, 2012
  1. Ryan Zezeski

    Kill local inbound handoffs

    rzezeski authored
    When killing repairs attempt to kill both sides of the xfer to make
    sure it's dead.  That is, kill both the senders on the remote nodes
    and the receivers on the local node.
  2. Ryan Zezeski

    Factor general filter code into Core

    rzezeski authored
    Factor out the repair filter code shared by Search & KV into Core.
  3. Ryan Zezeski

    Log error for non-existing xfer

    rzezeski authored
    Rather than throwing and thus crashing the vnode mgr when a xfer
    complete msg comes in log an error and move on.  This case can occur
    if the vnode mgr crashes and it's state gets out of sync with the
    handoff mgr.
  4. Ryan Zezeski
  5. Ryan Zezeski

    Match in function head

    rzezeski authored
  6. Ryan Zezeski

    Check repair preconditions on owner

    rzezeski authored
    Make the various precondition checks for repair on the owning node of
    the partition.  This is better because the repair call could be made
    from any node but ideally you want to check the ring and node status
    from the owning node for the simple fact that nodes don't always agree
    on the ring or the state of other nodes.
  7. Ryan Zezeski

    Rewrite logging code to be cleaner

    rzezeski authored
    The logging code in handoff sender was unnecessarily complex.  Also,
    it's better not to use a helper function as it obfuscates _where_ the
    logging statement was actually made.  I.e. lager will always print the
    name of the helper fun and not where the call was actually originated
    from.
  8. Ryan Zezeski

    Fix call to `trigger_ownership_handoff`

    rzezeski authored
    In a previous commit I changed the `trigger_ownership_handoff` to take
    the transfers instead of the ring but forgot to update both places it
    is called.
  9. Ryan Zezeski
  10. Ryan Zezeski

    Pass in ring, extract chash

    rzezeski authored
    Rather than extracting the chash outside of core, pass the ring and
    extract the chash there.
  11. Ryan Zezeski

    Use existing `pending_changes` API

    rzezeski authored
    Don't bother with the wrapper and just match directly against list.
  12. Ryan Zezeski

    Add chash API to `riak_core_ring`

    rzezeski authored
    Repair needs to get at the hash ring to build it's key filter.
  13. Ryan Zezeski

    Make xfer async and idempotent

    rzezeski authored
    The synchronous xfer call from vnode mgr to handoff mgr was very
    brittle.  Firstly, the handoff sender needs the vnode pid and the pid
    comes from the vnode manager but if the src and target partitions are
    on the same node then a deadlock will occur when the handoff mgr tries
    to get the pid from the vnode mgr which is still waiting for the
    handoff mgr to return, thus a deadlock.  Secondly, errors can occur
    during the call or max concurrency could be reached.
    
    Rather than code for these cases it's easier to make the xfer API
    idempotent and have the vnode manager constantly retry until it has
    confirmation of a completed xfer.
  14. Ryan Zezeski

    Clarify types a bit

    rzezeski authored
    Remove some confusion around the handoff types.
Something went wrong with that request. Please try again.