Addresses temporarily basho/riak#280
Added an extra state to riak_core_vnode to decouple vnode initialization from process creation. Added a function to block until initialization is truly finished. Vnode init call now takes a list of indices or single index. The list version creates vnode processes first, then waits for them to initialize, which allows it to happen in parallel. Used the above in riak_core_ring_handler when starting services on first ring event. Tests show I/O saturation at bitcask startup now, instead of the serialized trickle we had. This code still needs some work to handle edge cases, specially around how to handle vnode initialization failing.
The utility fun rpc_every_member_ann, uses by several status/console commands, was written assuming rpc:multicall returned results in the same order as the provided node list. This is an invalid assumption. This commit fixes rpc_every_member_ann as well as adds several additional utility functions to riak_core_util: pmap, multi_rpc, multi_rpc_ann, and multicall_ann.
* change the checking processes to use gen_server:cast instead of exit for message passing between it and the node_watcher process for valid return values (true/false). Invalid return values are still handled via exit. * provide functions (resume_health_checks/suspend_health_checks) on riak_core_node_watcher to enable/disable all health checks. This will also toggle the new healths_enabled flag in the node_watcher's state which is used to prevent re-starting checks when a node goes down and comes back up