-
Notifications
You must be signed in to change notification settings - Fork 392
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Allow vnode init to happen in parallel
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. Add concurrency control to vnode initialization New pmap with bounded concurrency utility added with unit tests. Fix cluster into to query vnode manager, not sup With the parallel vnode change, there is more reason to not query the supervisor directly, as its children may not have finished initialization yet.
- Loading branch information
1 parent
c08df0d
commit 0ae5839
Showing
5 changed files
with
219 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters