basho/riak_core — pull request #120 by jtuple (2011-12-13 03:36:16+00:00)
Title: 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.

The app.config settings and notes from part 1 of the vnode manager rewrite still apply here:
https://github.com/basho/riak_core/pull/106

Changes tested manually along with basho_bench and basho_expect. Need to work on comprehensive integration tests for both part 1 and part 2 of this work. Will work on that alongside code review.