Permalink
Switch branches/tags
Commits on Jan 10, 2012
Commits on Jan 6, 2012
  1. Merge pull request #135 from basho/adt-poolboy-update

    Update for new poolboy API
    Vagabond committed Jan 6, 2012
Commits on Jan 5, 2012
  1. Update for new poolboy API

    Vagabond committed Jan 5, 2012
Commits on Jan 4, 2012
Commits on Jan 3, 2012
  1. Merge of slf-core-ets-match-replacement + hand-edits onto master.

    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.
    slfritchie committed Jan 3, 2012
Commits on Dec 23, 2011
  1. Fix handoff issues in vnode/vnode manager

    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.
    jtuple committed Dec 23, 2011
  2. Merge branch 'az896-vnode-manager-rewrite-part2-rb'

    Conflicts:
    	src/riak_core_vnode.erl
    jtuple committed Dec 23, 2011
  3. Refactor riak_core vnode management (part 2)

    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.
    jtuple committed Dec 2, 2011
  4. Check if receiver hungup, assume handoff_concurrency

    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
    handoff.
    
    This is a normal occurance and should not be logged as an error/warning.
    rzezeski committed Dec 21, 2011
  5. Have handoff sender monitor vnode and use helper process

    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.
    rzezeski committed Dec 19, 2011
  6. Merge pull request #128 from basho/jrm-handoff-1.1

    Handoff Manager now in charge of senders and receivers.
    massung committed Dec 23, 2011
Commits on Dec 22, 2011
  1. Changed handoff_status to status and returning the list instead of {o…

    …k,List}. handoff_status.status is now defaulted to a list instead of undefined.
    massung committed Dec 22, 2011
  2. Merge pull request #115 from basho/az903-repl-improvements

    Allow applications to register repl helpers, for custom per-object repl behaviour
    Vagabond committed Dec 22, 2011
  3. More tweaks. Removed handoff tuple and now have a modindex and separa…

    …te node field in the handoff_status. send_outbound kills existing handoff (if different) before starting up.
    massung committed Dec 22, 2011
  4. Merge branch 'az996-listkeys-backpressure'

    Bryan Fink committed Dec 22, 2011
  5. Vnodes now always try to handoff (ignoring whether or not it thinks i…

    …t already is), and the handoff_manager is the final determiner if it should handoff or not.
    massung committed Dec 22, 2011
  6. Handoff manager now tracking the vnode_pid for outbound handoffs and …

    …notifies the vnode when the handoff completes.
    massung committed Dec 22, 2011
Commits on Dec 21, 2011
Commits on Dec 20, 2011
  1. Fixed bug in listener and added support for killing oldest handoffs i…

    …f set_concurrency is reduced below the number of active handoffs.
    massung committed Dec 20, 2011
  2. Updated the handoff_listener to properly reject incoming handoffs ins…

    …tead of shutting down. Also added a rejected_handoffs stat to riak_core_state that should act as a sliding window.
    massung committed Dec 20, 2011
  3. Simple eunit test to build off of for the handoff manager and modifie…

    …d the listener to follow protocol.
    massung committed Dec 20, 2011
Commits on Dec 19, 2011
  1. Handoff manager controls senders and receivers and tracks them. Hando…

    …ffs are a record. Handoff locks gone. Listener and vnode now go through the handoff manager instead of spawning senders and receivers themselves.
    massung committed Dec 19, 2011
  2. Merge branch '1.0'

    rzezeski committed Dec 19, 2011