[
https://issues.apache.org/jira/browse/IGNITE-29083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18123641#comment-18123641
]
Maksim Davydov commented on IGNITE-29083:
-----------------------------------------
[~sergeychugunov] [~baranoveg] Thanks for review!
> Add a JUnit base for multi-DC network split tests
> -------------------------------------------------
>
> Key: IGNITE-29083
> URL: https://issues.apache.org/jira/browse/IGNITE-29083
> Project: Ignite
> Issue Type: Task
> Reporter: Maksim Davydov
> Assignee: Maksim Davydov
> Priority: Minor
> Labels: IEP-140, ise
> Fix For: 2.19
>
> Time Spent: 2h 20m
> Remaining Estimate: 0h
>
> JUnit tests have no reliable way to cut the network between the data centers
> (DCs) of one cluster. The existing template,
> IgniteCacheTopologySplitAbstractTest, splits the cluster into two halves and
> waits for one exact topology version without a timeout. If the split ends in
> a different topology, the test hangs until it is killed. Its heal delivers
> the messages held during the split, which replays one side's view of the
> cluster on the other side.
> This adds MdcTopologySplitAbstractTest, a new abstract test on top of the
> template:
> - It splits the cluster into two or more sides by each node's DC. A client
> knows only the servers of its own DC, so it stays on that DC's side.
> - It waits up to 30 s until every node sees only its own side. Otherwise the
> test fails and logs what every node sees.
> - It heals by dropping the held messages and restarting every side but one.
> The restarted nodes rejoin and rebalance from the side that stayed up.
> The first test on it, MdcDcIsolationTest, checks the topology validator in
> four cases:
> - 3 DCs, majority validator, DC3 cut off: DC1 and DC2 write, DC3 rejects
> writes and serves reads.
> - The same with DC1 cut off, so that no DC is privileged.
> - 3 DCs split three ways: no side writes, every side reads.
> - 2 DCs with DC1 as the main one: DC2 cut off rejects writes and serves reads.
> After heal, every DC holds the same data and idle_verify finds no conflicts.
> Test code only.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)