forked from Kyorai/riak_core
-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Erlang 21 support. #3
Open
cmeiklejohn
wants to merge
250
commits into
partisan-support
Choose a base branch
from
partisan-support-r21
base: partisan-support
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
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
Fix the `compose/1` and `compose/2` functions in `riak_core_util`: * Compose lists of functions from right-to-left to match mathematical definition. * Add type variables to the type specs to express the intent that all functions being composed together should have the same type signature (a single argument of type `X`, returning a value of type `X`). * Add a test case that exposed the bug in the previous implementation that composed from left-to-right.
Fix riak_core_util:compose functions
Merge NHS claimant fixes for rdb & friends * ref/wip commit of a broken eqc test * Ensure that claim does not create unbalanced rings In the case that a new node is added to an existing cluster it claims partitions from existing nodes that it never takes too many, but it didn't ensure that it took vnodes evenly from all owning nodes, in some cases (see test/claim_32_5_unbalanced.eqc counter example) a ring can end up with some node not giving up any vnodes, whilst others give up multiple vnodes. The final ring is unbalanced, can lead to a slow node that performs too much work, and degrades the whole cluster. * Handle multiple increases to same nodes deltas In the case that node(s) require multiple increases to their deltas increase_deltas would fail with a `no function clause` error as the deltas would be > 0 still, but the nodes list empty. This fix simply goes around again. * WIP: placeholder function in, commiting for travel * WIP: ready for the tail violation code fix * Fix for tail violations. * Stylistic changes to last commit * Interim commit with test for adding groups of nodes * WIP: fix group claim rebalance the deltas for group claim by first "normalising" the deltas This is a WIP commit, there is some refactoring and tidying to do * Fix group claim now working for group+group add, single add and group+single. * WIP: claim rebalance code Now passes ove the deltas list twice, once to increase keeps, next decrease takes. Passes the tests, but still needs some work as coverage claims some clauses are not run * WIP: run a test for each of the ringsizes 16-512 This means we can explore larger clusters. The original test is capped at 15 nodes since it could generate a ring of 16, or 512, or any inbetween. With the state space so small why not generate each of the rings from 16-512 and for each ring size allow up to RingSize nodes to be added. Looking at test runs it seems we never get more than ~50 nodes even for 512, and there is some tweaking to be done, but this is still better coverage than the original tests. * WIP: statem test with leave (with issues) Leaving nodes stay in the ring which breaks claim. * Remove eunit test fun - don't call this test Rather than remove the WIP file, instead remove the eunit test function so that the statem is not called automatically as part of the test proceedure. Though this statem has been of use in fixing the claim issues, and verifying the fixes, it is not yet ready. Still to be done is the work that actually removes a node and it's ownership from the ring. * Write up recent claim work * Some grammar/spelling/typo fixen * Update claim-fixes.md * remove unsupported key limit statement * remove vnode per node reco * Rename and clean up/add links * Try again for local anchor link * Add link to eqc
support. if not, fall back to per-object messages.
instead of 127.*.*.* it's a scape hatch to allow local dev clusters and for people that want to get into trouble knowingly
cc @Licenser |
<3 |
@Licenser any thoughts on the failures here? |
Something in this branch broke |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.