IGNITE-28952 [ducktests] Make the cache level topology validator optional in MDC tests - #13431
Open
maksaska wants to merge 3 commits into
Open
IGNITE-28952 [ducktests] Make the cache level topology validator optional in MDC tests#13431maksaska wants to merge 3 commits into
maksaska wants to merge 3 commits into
Conversation
…onal in MDC tests
… based topology validation Generalize the MDC fixture to an arbitrary number of data centers and cover the majority based MdcTopologyValidator mode an odd DC count selects. The DC count now picks the validator mode: an even set is validated against a main datacenter, an odd one against a majority of the set. Passing both is rejected by MdcTopologyValidator.checkConfiguration(), so mdc_topology_params() emits exactly one of them, together with the dcsNum the MdcAffinityBackupFilter needs. min_backups() derives the smallest backup count that gives every DC one copy of every partition, which is 2 for three DCs. MdcCluster takes a dcs sequence, verify_split_brain() generalizes into verify_segments() over an arbitrary segmentation, and cross_dc_network() impairs the whole cross-DC mesh with per-pair overrides for asymmetric links. NetworkGroupManager gains enable/disable_network_partitions() for cutting several links at once. Every chain a node takes part in is installed by the same SSH round-trip: rolling a multi-way split out link by link would briefly present the cluster with a different, valid segmentation it would legitimately react to. The new scenarios assert what two DC mode cannot give: no datacenter is privileged, so the cluster survives the loss of any single one - including the first, which the others discovered through - while a three way split leaves no writable segment at all. Every partition owns one copy per DC, so every segment still serves every read.
…work The 'pairs' argument let a caller replace the symmetric impairment on individual DC links. Nothing uses it: all eight call sites want the uniform mesh. Serving it cost the helper its readability. Reconciling the overrides with the default took three passes over a frozenset keyed matrix - the frozenset to make (a, b) and (b, a) the same link, and an is_empty check giving an empty configuration the meaning "leave this pair unimpaired" rather than "fall back to the default". Two conventions and a temporary matrix, for a feature with no caller. Without it the store is filled by one loop over the pairs. A cluster whose links are not all alike still needs no fixture support: the store is easy to build by hand and NetworkGroupManager takes it directly, the registry being the only thing it needs from MdcCluster. That is preferable to a 'store' argument here, which would have to silently ignore delay_ms/loss whenever it was passed.
This file contains hidden or 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
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.
…onal in MDC tests
Thank you for submitting the pull request to the Apache Ignite.
In order to streamline the review of the contribution
we ask you to ensure the following steps have been taken:
The Contribution Checklist
The description explains WHAT and WHY was made instead of HOW.
The following pattern must be used:
IGNITE-XXXX Change summarywhereXXXX- number of JIRA issue.(see the Maintainers list)
the
green visaattached to the JIRA ticket (see tabPR Checkat TC.Bot - Instance 1 or TC.Bot - Instance 2)Notes
If you need any help, please email dev@ignite.apache.org or ask anу advice on http://asf.slack.com #ignite channel.