Skip to content
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
wants to merge 250 commits into
base: partisan-support
Choose a base branch
from
Open

Conversation

cmeiklejohn
Copy link
Member

No description provided.

jvoegele and others added 30 commits February 24, 2017 11:22
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.
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.
@cmeiklejohn
Copy link
Member Author

cc @Licenser

@Licenser
Copy link

Licenser commented May 4, 2018

<3

@cmeiklejohn
Copy link
Member Author

@Licenser any thoughts on the failures here?

@cmeiklejohn
Copy link
Member Author

Something in this branch broke staged_join for partisan-enabled Riak.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants