Make the ring manager responsible for loading the ring #214

Merged
merged 1 commit into from Jul 22, 2012
Commits on Jul 22, 2012
  1. @jtuple

    Make the ring manager responsible for loading the ring

    jtuple committed Jul 22, 2012
    Change riak_core_ring_manager and riak_core_app so that the ring manager
    is responsible for loading the ring file from the disk rather than starting
    with an initially empty ring and then relying upon the riak_core app to
    later load the ring. This avoids a race condition with the ring manager
    writing the empty ring to the disk before the riak_core app loads the
    prior ring.
    
    Note: Riak previously relied upon starting with a fresh ring in order to
    ensure secondary vnodes were started in case any had fallback data that
    needed to be handed off. The act of starting secondaries has long since
    been moved to the riak_core_vnode_manager that periodically starts up
    secondary vnodes over time, therefore there is no longer any need to
    start with a fresh ring. This commit will therefore always load a saved
    ring when the ring_manager starts, rather than starting with a fresh ring.