Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Jan 6, 2012
  1. @slfritchie
Commits on Jan 4, 2012
  1. @slfritchie
Commits on Jan 3, 2012
  1. @slfritchie

    Merge of slf-core-ets-match-replacement + hand-edits onto master.

    slfritchie committed
    Avoid use of ets:match() in hot code paths
    Profiling with DTrace on Solaris suggests that ets:match() is causing
    a much higher than necessary lock contention rate within the Erlang
    R14B03 and R14B04 VMs.  Eliminating ets:match() in the riak_core and
    riak_kv applications is substantial when using Pthread locking instead
    of Ericsson's hand-tuned locking (which is the default).  The results
    are more ambiguous when the default locking strategy is used.
    Hand-edits were required due to changes in master after the 1.0 branch
    was created.
  2. @slfritchie
  3. @slfritchie
Commits on Dec 23, 2011
  1. @jtuple
  2. @jtuple

    Fix handoff issues in vnode/vnode manager

    jtuple committed
    Change trigger_handoff and finish_handoff events in the
    vnode to be ignored if the vnode modstate is already deleted.
    Add periodic timer to vnode manager to perform various management
    activities. Currently re-triggers ownership handoff so that handoff
    under load is not triggered only on ring changes.
  3. @jtuple

    Merge branch 'az896-vnode-manager-rewrite-part2-rb'

    jtuple committed
  4. @jtuple

    Refactor riak_core vnode management (part 2)

    jtuple committed
    Move forwarding and handoff decisions from individual vnode processes
    and into the vnode manager. The vnode manager makes handoff and
    forwarding decisions whenever the ring changes, and triggers vnode
    state changes as appropriate.
    Rewrite the logic by which per vnode handoff is marked as complete in
    the ring. In particular, move the logic from riak_core_gossip and into
    riak_core_vnode. The underlying ring changes are still serialized by
    riak_core_ring_manager through the ring_trans function.
    Change gossip throttling logic to trigger gossip whenever gossip tokens
    reset, replacing the gossip interval approach.
    Perform various tuning and additional minor changes that improve cluster
    operation during a heavy gossip spike.
  5. @rzezeski
  6. @rzezeski

    Check if receiver hungup, assume handoff_concurrency

    rzezeski committed
    Now that handoff_concurrency enforces both outbound and inbound connections
    there is a chance that the receiver will decide to reject the incoming handoff
    and close the socket.  Since the current protocol has no way to express this
    the sender must assume that a socket handup is the receiver rejecting the
    This is a normal occurance and should not be logged as an error/warning.
  7. @rzezeski

    Have handoff sender monitor vnode and use helper process

    rzezeski committed
    Now that the handoff sender and vnode are no longer linked it is unsafe
    to use the master's `sync_command` call.  If the vnode fails the sync_command
    call will never return and the sender will be stuck indefinitely unless it is
    manually killed at the console.  Adding a timeout could fix this but would cause
    other complications if you set it too low.
    This patch gets around the issue by using a helper process to perform the fold.
    The sender process then monitors the vnode and spawn_links the helper.  If
    either the vnode or helper gets into trouble the sender will know about it.
    In the happy path the sender will get the fold result back and exit cleanly.
  8. @massung

    Merge pull request #128 from basho/jrm-handoff-1.1

    massung committed
    Handoff Manager now in charge of senders and receivers.
Commits on Dec 22, 2011
  1. @massung

    Changed handoff_status to status and returning the list instead of {o…

    massung committed
    …k,List}. handoff_status.status is now defaulted to a list instead of undefined.
  2. @massung
  3. @Vagabond

    Merge pull request #115 from basho/az903-repl-improvements

    Vagabond committed
    Allow applications to register repl helpers, for custom per-object repl behaviour
  4. @massung

    More tweaks. Removed handoff tuple and now have a modindex and separa…

    massung committed
    …te node field in the handoff_status. send_outbound kills existing handoff (if different) before starting up.
  5. @beerriot
  6. @massung

    Vnodes now always try to handoff (ignoring whether or not it thinks i…

    massung committed
    …t already is), and the handoff_manager is the final determiner if it should handoff or not.
  7. @massung
  8. @massung
  9. @massung

    Handoff manager now tracking the vnode_pid for outbound handoffs and …

    massung committed
    …notifies the vnode when the handoff completes.
Commits on Dec 21, 2011
  1. @jonmeredith @massung
  2. @massung
Commits on Dec 20, 2011
  1. @massung

    Fixed bug in listener and added support for killing oldest handoffs i…

    massung committed
    …f set_concurrency is reduced below the number of active handoffs.
  2. @massung
  3. @massung

    Updated the handoff_listener to properly reject incoming handoffs ins…

    massung committed
    …tead of shutting down. Also added a rejected_handoffs stat to riak_core_state that should act as a sliding window.
  4. @massung

    Simple eunit test to build off of for the handoff manager and modifie…

    massung committed
    …d the listener to follow protocol.
Commits on Dec 19, 2011
  1. @massung

    Handoff manager controls senders and receivers and tracks them. Hando…

    massung committed
    …ffs are a record. Handoff locks gone. Listener and vnode now go through the handoff manager instead of spawning senders and receivers themselves.
  2. @rzezeski

    Merge branch '1.0'

    rzezeski committed
  3. @rzezeski
Commits on Dec 16, 2011
  1. @rzezeski
  2. @russelldb

    Merge branch 'rdb_bz1278'

    russelldb committed
  3. @rzezeski

    Convert new_claim to act as pass-thru to claim mdoule

    rzezeski committed
    Think about removing this module in future major version with a warning
    in the release notes to anyone referencing this module.
  4. @rzezeski

    Revert "Remove new_claim module, everything was moved into claim module"

    rzezeski committed
    This reverts commit b6409ca.
    Since we've already introduced this module name there may be people using
    it already and we don't want to break their system.
Something went wrong with that request. Please try again.