This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 5733c5556e HDDS-11799. Remove config
hdds.scm.safemode.pipeline-availability.check (#8095)
5733c5556e is described below
commit 5733c5556e745580d1ca31a2c956806c03d76c7e
Author: Peter Lee <[email protected]>
AuthorDate: Tue Apr 8 18:05:08 2025 +0800
HDDS-11799. Remove config hdds.scm.safemode.pipeline-availability.check
(#8095)
---
.../org/apache/hadoop/hdds/HddsConfigKeys.java | 5 --
.../common/src/main/resources/ozone-default.xml | 9 ---
.../hdds/scm/pipeline/PipelineReportHandler.java | 7 +-
.../hadoop/hdds/scm/safemode/SafeModeMetrics.java | 3 +-
.../hdds/scm/safemode/SafeModeRuleFactory.java | 10 +--
.../safemode/TestHealthyPipelineSafeModeRule.java | 6 --
.../TestOneReplicaPipelineSafeModeRule.java | 2 -
.../hdds/scm/safemode/TestSCMSafeModeManager.java | 84 +++++++++-------------
.../TestSCMPipelineBytesWrittenMetrics.java | 3 -
.../safemode/TestSCMSafeModeWithPipelineRules.java | 3 -
10 files changed, 39 insertions(+), 93 deletions(-)
diff --git
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/HddsConfigKeys.java
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/HddsConfigKeys.java
index c76cafda55..20f21ce5ca 100644
---
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/HddsConfigKeys.java
+++
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/HddsConfigKeys.java
@@ -89,11 +89,6 @@ public final class HddsConfigKeys {
public static final String
HDDS_SCM_WAIT_TIME_AFTER_SAFE_MODE_EXIT_DEFAULT = "5m";
- public static final String HDDS_SCM_SAFEMODE_PIPELINE_AVAILABILITY_CHECK =
- "hdds.scm.safemode.pipeline-availability.check";
- public static final boolean
- HDDS_SCM_SAFEMODE_PIPELINE_AVAILABILITY_CHECK_DEFAULT = true;
-
public static final String HDDS_SCM_SAFEMODE_PIPELINE_CREATION =
"hdds.scm.safemode.pipeline.creation";
public static final boolean
diff --git a/hadoop-hdds/common/src/main/resources/ozone-default.xml
b/hadoop-hdds/common/src/main/resources/ozone-default.xml
index 7e76cf68c7..3bc86c370c 100644
--- a/hadoop-hdds/common/src/main/resources/ozone-default.xml
+++ b/hadoop-hdds/common/src/main/resources/ozone-default.xml
@@ -1659,15 +1659,6 @@
</description>
</property>
- <property>
- <name>hdds.scm.safemode.pipeline-availability.check</name>
- <value>true</value>
- <tag>HDDS,SCM,OPERATION</tag>
- <description>
- Boolean value to enable pipeline availability check during SCM safe mode.
- </description>
- </property>
-
<property>
<name>hdds.scm.safemode.healthy.pipeline.pct</name>
<value>0.10</value>
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/PipelineReportHandler.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/PipelineReportHandler.java
index dbdb366a91..b7c295ef81 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/PipelineReportHandler.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/PipelineReportHandler.java
@@ -20,7 +20,6 @@
import com.google.common.base.Preconditions;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
-import org.apache.hadoop.hdds.HddsConfigKeys;
import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.conf.ConfigurationSource;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
@@ -52,7 +51,6 @@ public class PipelineReportHandler implements
private final PipelineManager pipelineManager;
private final SafeModeManager scmSafeModeManager;
private final SCMContext scmContext;
- private final boolean pipelineAvailabilityCheck;
private final SCMPipelineMetrics metrics;
public PipelineReportHandler(SafeModeManager scmSafeModeManager,
@@ -64,9 +62,6 @@ public PipelineReportHandler(SafeModeManager
scmSafeModeManager,
this.pipelineManager = pipelineManager;
this.scmContext = scmContext;
this.metrics = SCMPipelineMetrics.create();
- this.pipelineAvailabilityCheck = conf.getBoolean(
- HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_AVAILABILITY_CHECK,
- HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_AVAILABILITY_CHECK_DEFAULT);
}
@Override
@@ -140,7 +135,7 @@ protected void processPipelineReport(PipelineReport report,
}
}
if (pipeline.isHealthy()) {
- if (pipelineAvailabilityCheck && scmSafeModeManager.getInSafeMode()) {
+ if (scmSafeModeManager.getInSafeMode()) {
publisher.fireEvent(SCMEvents.OPEN_PIPELINE, pipeline);
}
}
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/safemode/SafeModeMetrics.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/safemode/SafeModeMetrics.java
index 8099f6db3f..bcdfa81425 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/safemode/SafeModeMetrics.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/safemode/SafeModeMetrics.java
@@ -42,8 +42,7 @@ public class SafeModeMetrics {
private @Metric MutableCounterLong
currentContainersWithECDataReplicaReportedCount;
- // When hdds.scm.safemode.pipeline-availability.check is set then only
- // below metrics will have some values, otherwise they will be zero.
+ // Pipeline metrics for safemode
private @Metric MutableGaugeLong numHealthyPipelinesThreshold;
private @Metric MutableCounterLong currentHealthyPipelinesCount;
private @Metric MutableGaugeLong
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/safemode/SafeModeRuleFactory.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/safemode/SafeModeRuleFactory.java
index 9d1d732e2e..65be38ae6e 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/safemode/SafeModeRuleFactory.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/safemode/SafeModeRuleFactory.java
@@ -19,7 +19,6 @@
import java.util.ArrayList;
import java.util.List;
-import org.apache.hadoop.hdds.HddsConfigKeys;
import org.apache.hadoop.hdds.conf.ConfigurationSource;
import org.apache.hadoop.hdds.scm.container.ContainerManager;
import org.apache.hadoop.hdds.scm.ha.SCMContext;
@@ -79,13 +78,8 @@ private void loadRules() {
preCheckRules.add(datanodeRule);
- // TODO: Move isRuleEnabled check to the Rule implementation. (HDDS-11799)
- if (config.getBoolean(
- HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_AVAILABILITY_CHECK,
- HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_AVAILABILITY_CHECK_DEFAULT)
- && pipelineManager != null) {
-
- safeModeRules.add(new HealthyPipelineSafeModeRule(eventQueue,
pipelineManager,
+ if (pipelineManager != null) {
+ safeModeRules.add(new HealthyPipelineSafeModeRule(eventQueue,
pipelineManager,
safeModeManager, config, scmContext));
safeModeRules.add(new OneReplicaPipelineSafeModeRule(eventQueue,
pipelineManager,
safeModeManager, config));
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestHealthyPipelineSafeModeRule.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestHealthyPipelineSafeModeRule.java
index c2c384e10d..dde1076a6b 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestHealthyPipelineSafeModeRule.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestHealthyPipelineSafeModeRule.java
@@ -74,8 +74,6 @@ public void testHealthyPipelineSafeModeRuleWithNoPipelines()
when(containerManager.getContainers()).thenReturn(containers);
config.set(HddsConfigKeys.OZONE_METADATA_DIRS, tempFile.getPath());
// enable pipeline check
- config.setBoolean(
- HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_AVAILABILITY_CHECK,
true);
config.setBoolean(
HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_CREATION, false);
SCMMetadataStore scmMetadataStore = new SCMMetadataStoreImpl(config);
@@ -128,8 +126,6 @@ public void testHealthyPipelineSafeModeRuleWithPipelines()
throws Exception {
when(containerManager.getContainers()).thenReturn(containers);
config.set(HddsConfigKeys.OZONE_METADATA_DIRS, tempFile.getPath());
// enable pipeline check
- config.setBoolean(
- HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_AVAILABILITY_CHECK,
true);
config.setBoolean(
HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_CREATION, false);
@@ -224,8 +220,6 @@ public void
testHealthyPipelineSafeModeRuleWithMixedPipelines()
when(containerManager.getContainers()).thenReturn(containers);
config.set(HddsConfigKeys.OZONE_METADATA_DIRS, tempFile.getPath());
// enable pipeline check
- config.setBoolean(
- HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_AVAILABILITY_CHECK,
true);
config.setBoolean(
HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_CREATION, false);
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestOneReplicaPipelineSafeModeRule.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestOneReplicaPipelineSafeModeRule.java
index 341643100b..64bb2d21fb 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestOneReplicaPipelineSafeModeRule.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestOneReplicaPipelineSafeModeRule.java
@@ -77,8 +77,6 @@ public class TestOneReplicaPipelineSafeModeRule {
private void setup(int nodes, int pipelineFactorThreeCount,
int pipelineFactorOneCount) throws Exception {
OzoneConfiguration ozoneConfiguration = new OzoneConfiguration();
- ozoneConfiguration.setBoolean(
- HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_AVAILABILITY_CHECK, true);
ozoneConfiguration.set(HddsConfigKeys.OZONE_METADATA_DIRS,
tempDir.toString());
ozoneConfiguration.setBoolean(
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java
index 78d0f8d3df..f693df81dc 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java
@@ -208,9 +208,6 @@ public void testSafeModeExitRule() throws Exception {
private OzoneConfiguration createConf(double healthyPercent,
double oneReplicaPercent) {
OzoneConfiguration conf = new OzoneConfiguration(config);
- conf.setBoolean(
- HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_AVAILABILITY_CHECK,
- true);
conf.setDouble(HddsConfigKeys.
HDDS_SCM_SAFEMODE_HEALTHY_PIPELINE_THRESHOLD_PCT, healthyPercent);
conf.setDouble(HddsConfigKeys.
@@ -667,67 +664,56 @@ private void testECContainerThreshold(List<ContainerInfo>
dnContainers,
public void testSafeModePipelineExitRule() throws Exception {
containers = new ArrayList<>();
containers.addAll(HddsTestUtils.getContainerInfo(25 * 4));
- try {
- MockNodeManager nodeManager = new MockNodeManager(true, 3);
- // enable pipeline check
- config.setBoolean(
- HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_AVAILABILITY_CHECK, true);
-
- PipelineManagerImpl pipelineManager =
- PipelineManagerImpl.newPipelineManager(
- config,
- SCMHAManagerStub.getInstance(true),
- nodeManager,
- scmMetadataStore.getPipelineTable(),
- queue,
- scmContext,
- serviceManager,
- Clock.system(ZoneOffset.UTC));
-
- PipelineProvider<RatisReplicationConfig> mockRatisProvider =
- new MockRatisPipelineProvider(nodeManager,
- pipelineManager.getStateManager(), config);
- pipelineManager.setPipelineProvider(HddsProtos.ReplicationType.RATIS,
- mockRatisProvider);
+ MockNodeManager nodeManager = new MockNodeManager(true, 3);
+ PipelineManagerImpl pipelineManager =
+ PipelineManagerImpl.newPipelineManager(
+ config,
+ SCMHAManagerStub.getInstance(true),
+ nodeManager,
+ scmMetadataStore.getPipelineTable(),
+ queue,
+ scmContext,
+ serviceManager,
+ Clock.system(ZoneOffset.UTC));
- Pipeline pipeline = pipelineManager.createPipeline(
- RatisReplicationConfig.getInstance(
- ReplicationFactor.THREE));
+ PipelineProvider<RatisReplicationConfig> mockRatisProvider =
+ new MockRatisPipelineProvider(nodeManager,
+ pipelineManager.getStateManager(), config);
+ pipelineManager.setPipelineProvider(HddsProtos.ReplicationType.RATIS,
+ mockRatisProvider);
- pipeline = pipelineManager.getPipeline(pipeline.getId());
- MockRatisPipelineProvider.markPipelineHealthy(pipeline);
- ContainerManager containerManager = mock(ContainerManager.class);
- when(containerManager.getContainers()).thenReturn(containers);
+ Pipeline pipeline = pipelineManager.createPipeline(
+ RatisReplicationConfig.getInstance(
+ ReplicationFactor.THREE));
+
+ pipeline = pipelineManager.getPipeline(pipeline.getId());
+ MockRatisPipelineProvider.markPipelineHealthy(pipeline);
+ ContainerManager containerManager = mock(ContainerManager.class);
+ when(containerManager.getContainers()).thenReturn(containers);
- scmSafeModeManager = new SCMSafeModeManager(
+ scmSafeModeManager = new SCMSafeModeManager(
config, containerManager, pipelineManager, nodeManager, queue,
serviceManager, scmContext);
- SCMDatanodeProtocolServer.NodeRegistrationContainerReport
nodeRegistrationContainerReport =
- HddsTestUtils.createNodeRegistrationContainerReport(containers);
- queue.fireEvent(SCMEvents.NODE_REGISTRATION_CONT_REPORT,
nodeRegistrationContainerReport);
- queue.fireEvent(SCMEvents.CONTAINER_REGISTRATION_REPORT,
nodeRegistrationContainerReport);
+ SCMDatanodeProtocolServer.NodeRegistrationContainerReport
nodeRegistrationContainerReport =
+ HddsTestUtils.createNodeRegistrationContainerReport(containers);
+ queue.fireEvent(SCMEvents.NODE_REGISTRATION_CONT_REPORT,
nodeRegistrationContainerReport);
+ queue.fireEvent(SCMEvents.CONTAINER_REGISTRATION_REPORT,
nodeRegistrationContainerReport);
+
- assertTrue(scmSafeModeManager.getInSafeMode());
+ assertTrue(scmSafeModeManager.getInSafeMode());
- firePipelineEvent(pipelineManager, pipeline);
+ firePipelineEvent(pipelineManager, pipeline);
- GenericTestUtils.waitFor(() -> !scmSafeModeManager.getInSafeMode(),
- 100, 1000 * 10);
- pipelineManager.close();
- } finally {
- config.setBoolean(
- HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_AVAILABILITY_CHECK,
- false);
- }
+ GenericTestUtils.waitFor(() -> !scmSafeModeManager.getInSafeMode(),
+ 100, 1000 * 10);
+ pipelineManager.close();
}
@Test
public void testPipelinesNotCreatedUntilPreCheckPasses() throws Exception {
int numOfDns = 5;
// enable pipeline check
- config.setBoolean(
- HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_AVAILABILITY_CHECK, true);
config.setInt(HddsConfigKeys.HDDS_SCM_SAFEMODE_MIN_DATANODE, numOfDns);
config.setBoolean(HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_CREATION,
true);
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestSCMPipelineBytesWrittenMetrics.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestSCMPipelineBytesWrittenMetrics.java
index 93d9d26de7..bf330e09e0 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestSCMPipelineBytesWrittenMetrics.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestSCMPipelineBytesWrittenMetrics.java
@@ -30,7 +30,6 @@
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import org.apache.commons.lang3.RandomStringUtils;
-import org.apache.hadoop.hdds.HddsConfigKeys;
import org.apache.hadoop.hdds.client.ReplicationFactor;
import org.apache.hadoop.hdds.client.ReplicationType;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
@@ -63,8 +62,6 @@ public class TestSCMPipelineBytesWrittenMetrics {
@BeforeEach
public void setup() throws Exception {
conf = new OzoneConfiguration();
- conf.set(HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_AVAILABILITY_CHECK,
- Boolean.TRUE.toString());
conf.setBoolean(OZONE_SCM_PIPELINE_AUTO_CREATE_FACTOR_ONE, false);
conf.setInt(OZONE_DATANODE_PIPELINE_LIMIT, 1);
conf.setTimeDuration(HDDS_PIPELINE_REPORT_INTERVAL, 10, TimeUnit.SECONDS);
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeWithPipelineRules.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeWithPipelineRules.java
index e5ffe10fd2..cc7419648a 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeWithPipelineRules.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeWithPipelineRules.java
@@ -61,9 +61,6 @@ public void setup(int numDatanodes) throws Exception {
conf = new OzoneConfiguration();
conf.setTimeDuration(OZONE_SCM_HEARTBEAT_PROCESS_INTERVAL,
100, TimeUnit.MILLISECONDS);
- conf.setBoolean(
- HddsConfigKeys.HDDS_SCM_SAFEMODE_PIPELINE_AVAILABILITY_CHECK,
- true);
conf.set(HddsConfigKeys.HDDS_SCM_WAIT_TIME_AFTER_SAFE_MODE_EXIT, "10s");
conf.set(ScmConfigKeys.OZONE_SCM_PIPELINE_CREATION_INTERVAL, "10s");
conf.setInt(OZONE_DATANODE_PIPELINE_LIMIT, 1);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]