-
Notifications
You must be signed in to change notification settings - Fork 392
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
Improved location claim algorithm #1008
Commits on Mar 27, 2023
-
Configuration and module alignment
Add claim function and target_n_val configuration into cuttlefish. Move modules around to try and make it more obvious where functions used in membership reside.
Configuration menu - View commit details
-
Copy full SHA for 234e863 - Browse repository at this point
Copy the full SHA 234e863View commit details -
Configuration menu - View commit details
-
Copy full SHA for e1ce784 - Browse repository at this point
Copy the full SHA e1ce784View commit details -
Stops fake wants being required to prompt claim on a location change. Allow for a claim module to implement a sort_members_for_choose(Ring, Members, Owners) -> SortedMembers function, to pre-sort the members being passed into claim_rebalance. Add further specs.
Configuration menu - View commit details
-
Copy full SHA for 28fbcf9 - Browse repository at this point
Copy the full SHA 28fbcf9View commit details -
Configuration menu - View commit details
-
Copy full SHA for eb13a48 - Browse repository at this point
Copy the full SHA eb13a48View commit details
Commits on Mar 29, 2023
-
Location claim improved so that it will try to balance the spread of vnodes, if it reaches the end and is still unbalanced. Also uses a stronger meets_target_n to fallback to sequential_claim more reliably on incorrect spacing (of vnodes across nodes, but not yet across locations).
Configuration menu - View commit details
-
Copy full SHA for 35b9e2f - Browse repository at this point
Copy the full SHA 35b9e2fView commit details
Commits on Mar 30, 2023
-
Extended potential for test by determining what nodes are safe to both add and remove from loops, rather than simply relying on sequential order.
Configuration menu - View commit details
-
Copy full SHA for 4e2c963 - Browse repository at this point
Copy the full SHA 4e2c963View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3ab0f4b - Browse repository at this point
Copy the full SHA 3ab0f4bView commit details
Commits on Mar 31, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 8fe7fc7 - Browse repository at this point
Copy the full SHA 8fe7fc7View commit details -
Better order of initial striping
Resolves some test issues. Also try harder to do safe removals when looking back in the ring (as opposed to the removal other additions)
Configuration menu - View commit details
-
Copy full SHA for 58d6264 - Browse repository at this point
Copy the full SHA 58d6264View commit details
Commits on May 3, 2023
-
* Support two transition changes Where the second transition is triggered by a change of location. Need to ensure that the location_changed status update is recognised in the ring * Unrelated fix to remove reference to gen_fsm_compat * unrelated fix to get rid of deprecation warning * Testing claim * The new claim algorithm as purely functional algorithm * add new entry for version 5 claiming * Refactor v5 into v4 * move impossible config test to place where we actually may enter recursion * Documentation The algorithm should be described in more detail in a markup document * Allow configurations with zero nodes in location for better placement update This works better when a location is emptied on nodes. Less transfers. * Keep order of nodes to avoid back translate issue --------- Co-authored-by: Martin Sumner <martin.sumner@adaptip.co.uk>
Configuration menu - View commit details
-
Copy full SHA for bfe605b - Browse repository at this point
Copy the full SHA bfe605bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 278ffa4 - Browse repository at this point
Copy the full SHA 278ffa4View commit details
Commits on May 9, 2023
-
Otherwise, if all vnodes have become excluded there is no escape from this condition (unless other traffic can trigger the creation of vnodes). This is helpful in situations where transfers are performed on standby clusters with no other traffic. This commit also logs a timing of the claim each time it is called.
Configuration menu - View commit details
-
Copy full SHA for e13f4e0 - Browse repository at this point
Copy the full SHA e13f4e0View commit details -
Configuration menu - View commit details
-
Copy full SHA for e5083f1 - Browse repository at this point
Copy the full SHA e5083f1View commit details
Commits on May 11, 2023
-
Remember v4 solutions via claimant
To allow for the riak_core_ring_manager and riak_core_claimant to remember v4 solutions, they are shared via the state of the claimant
Configuration menu - View commit details
-
Copy full SHA for 6820c7b - Browse repository at this point
Copy the full SHA 6820c7bView commit details
Commits on May 15, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 6527033 - Browse repository at this point
Copy the full SHA 6527033View commit details
Commits on May 17, 2023
-
* Add an extra test to show owners may stay the same if only location changes This is not always the case, but holds when there is a solution in the first place * Fix type error that dialyzer could not find * Introduce necessary conditions to fallback to version 2 * update tests * Check whether it is worth to use brute force * make historic values the norm * Introduce nvals map type * Take nr nodes into account when checking for brute force cond. * Property to evaluate skipping brute force strategy * QuickCheck property starts with choosing ring size. * Remove fallback for necessary conditions * Filter tests to get away with flakyness * In order to re-run tests suite, remove strict precondition * Check in test suite * Replace claim_suite.suite by larger claim.suite * Sometimes it is worth to brute_force to a zero node violation * better documentation binring algorithm * Run property with a sufficient condition
Configuration menu - View commit details
-
Copy full SHA for 0da5c68 - Browse repository at this point
Copy the full SHA 0da5c68View commit details -
Configuration menu - View commit details
-
Copy full SHA for be0451c - Browse repository at this point
Copy the full SHA be0451cView commit details -
Merge branch 'mas-i1001-claimrefactor' of https://github.com/basho/ri…
…ak_core into mas-i1001-claimrefactor
Configuration menu - View commit details
-
Copy full SHA for e7329f0 - Browse repository at this point
Copy the full SHA e7329f0View commit details -
Configuration menu - View commit details
-
Copy full SHA for c43d0a6 - Browse repository at this point
Copy the full SHA c43d0a6View commit details
Commits on May 18, 2023
-
Configuration menu - View commit details
-
Copy full SHA for b6dcbc2 - Browse repository at this point
Copy the full SHA b6dcbc2View commit details
Commits on May 19, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 2dd845f - Browse repository at this point
Copy the full SHA 2dd845fView commit details -
The cache of v4 solutions is required by the ring_manager and the claimant - so specifically update both of these processes each time. Otherwise cache will be missed when the ring_manager calls to riak_core_claimant:ring_changed/2. There is a fix to the last gasp check before writing the ring file. prune_write_notify_ring function does not care if the write of a ring errors - so error for this function rather than crashing the ring manager. This otherwise causes instability in location tests.
Configuration menu - View commit details
-
Copy full SHA for 0c05dc4 - Browse repository at this point
Copy the full SHA 0c05dc4View commit details
Commits on May 23, 2023
-
Example configurations saves in source format (#1005)
* Remove pre-computed test suite * cleanup * Make claim_eqc tests not fail on weird configs by supplying a diverse list of options
Configuration menu - View commit details
-
Copy full SHA for 057b17e - Browse repository at this point
Copy the full SHA 057b17eView commit details -
The leave call on a failure of simple_transfer will call sequential_claim - which is part of the v2 claim family. Now we have v4, if this is configured it should call v4 as it does handle leaves.
Configuration menu - View commit details
-
Copy full SHA for c9ca336 - Browse repository at this point
Copy the full SHA c9ca336View commit details -
Merge branch 'mas-i1001-claimrefactor' of https://github.com/basho/ri…
…ak_core into mas-i1001-claimrefactor
Configuration menu - View commit details
-
Copy full SHA for ba4ef70 - Browse repository at this point
Copy the full SHA ba4ef70View commit details -
Configuration menu - View commit details
-
Copy full SHA for 470a57f - Browse repository at this point
Copy the full SHA 470a57fView commit details -
Update - to use correct claim_fun on leave
Property temporarily changed to consider only failures with locations
Configuration menu - View commit details
-
Copy full SHA for c6a3dd5 - Browse repository at this point
Copy the full SHA c6a3dd5View commit details
Commits on May 25, 2023
-
Use application env to read target_n_val (#1007)
* Use application env to read target_n_val * Re-introduce v2 in riak_core_claim_eqc * Move precondition to postcondition to also test less perfect cases * Fixed error in transfer_node usage * cleanup not using remove_from_cluster/5.
Configuration menu - View commit details
-
Copy full SHA for a49697c - Browse repository at this point
Copy the full SHA a49697cView commit details -
Add warning if simple_transfer produces unbalanced result
In this case - full_rebalance should be enabled
Configuration menu - View commit details
-
Copy full SHA for 60e7199 - Browse repository at this point
Copy the full SHA 60e7199View commit details
Commits on May 26, 2023
-
Add recommendation to use full_rebalance_on_leave for locations
Configuration menu - View commit details
-
Copy full SHA for 57675fb - Browse repository at this point
Copy the full SHA 57675fbView commit details
Commits on May 27, 2023
-
Configuration menu - View commit details
-
Copy full SHA for bf1e668 - Browse repository at this point
Copy the full SHA bf1e668View commit details
Commits on Jun 12, 2023
-
* Change doc Change introduction to refer to vnodes and nodes. Removes the recommendation not to vary location_n_val and node_n_val. * Update comments on having different target n_vals * Further doc updates * Update docs/claim-version4.md * Update docs/claim-version4.md * Update docs/claim-version4.md Co-authored-by: Thomas Arts <thomas.arts@quviq.com> * Update docs/claim-version4.md Co-authored-by: Thomas Arts <thomas.arts@quviq.com> --------- Co-authored-by: Thomas Arts <thomas.arts@quviq.com>
Configuration menu - View commit details
-
Copy full SHA for 5d8912f - Browse repository at this point
Copy the full SHA 5d8912fView commit details