From d0d7f3b074053e07a0af9449082f0b0448df89da Mon Sep 17 00:00:00 2001 From: Kari Makinen Date: Mon, 3 Oct 2022 11:53:09 +0300 Subject: [PATCH] add ClusterQuorumResolver --- network-segmentation/pom.xml | 3 +- .../segmentation/IgSegmentationProcessor.java | 14 ++-- .../segment/ClusterQuorumResolver.java | 64 +++++++++++++++++++ pom.xml | 16 ++++- 4 files changed, 88 insertions(+), 9 deletions(-) create mode 100644 network-segmentation/src/main/java/com/ig/segmentation/network/segment/ClusterQuorumResolver.java diff --git a/network-segmentation/pom.xml b/network-segmentation/pom.xml index 343dfcc..f65c5e4 100644 --- a/network-segmentation/pom.xml +++ b/network-segmentation/pom.xml @@ -18,6 +18,7 @@ org.apache.ignite ignite-core + ${apache-ignite.version} @@ -27,4 +28,4 @@ - \ No newline at end of file + diff --git a/network-segmentation/src/main/java/com/ig/segmentation/internal/processors/segmentation/IgSegmentationProcessor.java b/network-segmentation/src/main/java/com/ig/segmentation/internal/processors/segmentation/IgSegmentationProcessor.java index afc0cf3..334ed3f 100644 --- a/network-segmentation/src/main/java/com/ig/segmentation/internal/processors/segmentation/IgSegmentationProcessor.java +++ b/network-segmentation/src/main/java/com/ig/segmentation/internal/processors/segmentation/IgSegmentationProcessor.java @@ -1,9 +1,7 @@ package com.ig.segmentation.internal.processors.segmentation; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; - +import com.ig.segmentation.network.segment.ClusterQuorumResolver; +import com.ig.segmentation.plugin.IgSegmentationPlugin; import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.internal.GridKernalContext; @@ -15,7 +13,9 @@ import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.plugin.segmentation.SegmentationResolver; -import com.ig.segmentation.plugin.IgSegmentationPlugin; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; /** * This class defines {@link GridSegmentationProcessor} implementation which can be replaced with @@ -91,7 +91,9 @@ private boolean hasValidSegments(List resolvers, Map maxServerNodesSeen) maxServerNodesSeen = serverNodes; + + log.info("quorumNodes=" + quorumNodes + " serverNodes=" + serverNodes + " maxServerNodesSeen=" + maxServerNodesSeen + " attempts=" + quorumAttempts + " maxWaitForQuorumAttempts=" + maxWaitForQuorumAttempts); + if (serverNodes < quorumNodes) { + if (quorumAttempts > maxWaitForQuorumAttempts) { + return false; + } + quorumAttempts += 1; + } + } catch (NullPointerException e) { + log.warning("null", e); + } + return true; + } +} diff --git a/pom.xml b/pom.xml index 6f3837f..cf5fe3c 100644 --- a/pom.xml +++ b/pom.xml @@ -16,10 +16,22 @@ 0.0.1 - 2.6.0 + 2.13.0 4.12 + + + + maven-compiler-plugin + 3.8.0 + + 11 + + + + + @@ -38,4 +50,4 @@ - \ No newline at end of file +