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 9b66267de4 HDDS-11589. ReconSCMDBDefinition should be singleton. 
(#7323)
9b66267de4 is described below

commit 9b66267de448c0f60c3272ad80b25de8a1401dd7
Author: Tsz-Wo Nicholas Sze <[email protected]>
AuthorDate: Thu Oct 17 01:16:17 2024 -0700

    HDDS-11589. ReconSCMDBDefinition should be singleton. (#7323)
---
 .../hadoop/ozone/recon/scm/ReconSCMDBDefinition.java   | 18 ++++++++++--------
 .../recon/scm/ReconStorageContainerManagerFacade.java  |  6 ++----
 .../recon/scm/AbstractReconContainerManagerTest.java   |  2 +-
 .../hadoop/ozone/recon/scm/TestReconNodeManager.java   |  2 +-
 .../ozone/recon/scm/TestReconPipelineManager.java      |  2 +-
 .../apache/hadoop/ozone/debug/DBDefinitionFactory.java |  2 +-
 .../hadoop/ozone/debug/TestDBDefinitionFactory.java    |  3 +--
 7 files changed, 17 insertions(+), 18 deletions(-)

diff --git 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconSCMDBDefinition.java
 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconSCMDBDefinition.java
index e8a6949f21..4970d5da91 100644
--- 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconSCMDBDefinition.java
+++ 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconSCMDBDefinition.java
@@ -32,25 +32,27 @@ import org.apache.hadoop.ozone.recon.ReconServerConfigKeys;
 /**
  * Recon SCM db file for ozone.
  */
-public class ReconSCMDBDefinition extends SCMDBDefinition {
+public final class ReconSCMDBDefinition extends SCMDBDefinition {
   private static final Codec<UUID> UUID_CODEC = new DelegatedCodec<>(
       StringCodec.get(), UUID::fromString, UUID::toString,
       UUID.class, DelegatedCodec.CopyType.SHALLOW);
 
   public static final String RECON_SCM_DB_NAME = "recon-scm.db";
 
-  public static final DBColumnFamilyDefinition<UUID, DatanodeDetails>
-      NODES =
-      new DBColumnFamilyDefinition<UUID, DatanodeDetails>(
-          "nodes",
-          UUID_CODEC,
-          DatanodeDetails.getCodec());
+  public static final DBColumnFamilyDefinition<UUID, DatanodeDetails> NODES
+      = new DBColumnFamilyDefinition<>("nodes", UUID_CODEC, 
DatanodeDetails.getCodec());
 
   private static final Map<String, DBColumnFamilyDefinition<?, ?>>
       COLUMN_FAMILIES = DBColumnFamilyDefinition.newUnmodifiableMap(
           SCMDBDefinition.get().getMap(), NODES);
 
-  public ReconSCMDBDefinition() {
+  private static final ReconSCMDBDefinition INSTANCE = new 
ReconSCMDBDefinition();
+
+  public static ReconSCMDBDefinition get() {
+    return INSTANCE;
+  }
+
+  private ReconSCMDBDefinition() {
     super(COLUMN_FAMILIES);
   }
 
diff --git 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconStorageContainerManagerFacade.java
 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconStorageContainerManagerFacade.java
index c773187c4b..ea1a344016 100644
--- 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconStorageContainerManagerFacade.java
+++ 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconStorageContainerManagerFacade.java
@@ -218,8 +218,7 @@ public class ReconStorageContainerManagerFacade
 
     this.scmStorageConfig = new ReconStorageConfig(conf, reconUtils);
     this.clusterMap = new NetworkTopologyImpl(conf);
-    this.dbStore = DBStoreBuilder
-        .createDBStore(ozoneConfiguration, new ReconSCMDBDefinition());
+    this.dbStore = DBStoreBuilder.createDBStore(ozoneConfiguration, 
ReconSCMDBDefinition.get());
 
     this.scmLayoutVersionManager =
         new HDDSLayoutVersionManager(scmStorageConfig.getLayoutVersion());
@@ -627,8 +626,7 @@ public class ReconStorageContainerManagerFacade
 
   private void initializeNewRdbStore(File dbFile) throws IOException {
     try {
-      DBStore newStore = createDBAndAddSCMTablesAndCodecs(
-          dbFile, new ReconSCMDBDefinition());
+      final DBStore newStore = createDBAndAddSCMTablesAndCodecs(dbFile, 
ReconSCMDBDefinition.get());
       Table<UUID, DatanodeDetails> nodeTable =
           ReconSCMDBDefinition.NODES.getTable(dbStore);
       Table<UUID, DatanodeDetails> newNodeTable =
diff --git 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/AbstractReconContainerManagerTest.java
 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/AbstractReconContainerManagerTest.java
index eb62b7d3ec..939279fc17 100644
--- 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/AbstractReconContainerManagerTest.java
+++ 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/AbstractReconContainerManagerTest.java
@@ -88,7 +88,7 @@ public class AbstractReconContainerManagerTest {
     conf = new OzoneConfiguration();
     conf.set(OZONE_METADATA_DIRS, tempDir.getAbsolutePath());
     conf.set(OZONE_SCM_NAMES, "localhost");
-    store = DBStoreBuilder.createDBStore(conf, new ReconSCMDBDefinition());
+    store = DBStoreBuilder.createDBStore(conf, ReconSCMDBDefinition.get());
     scmhaManager = SCMHAManagerStub.getInstance(
         true, new SCMHADBTransactionBufferStub(store));
     sequenceIdGen = new SequenceIdGenerator(
diff --git 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconNodeManager.java
 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconNodeManager.java
index 02207f9c62..f17eb78d89 100644
--- 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconNodeManager.java
+++ 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconNodeManager.java
@@ -86,7 +86,7 @@ public class TestReconNodeManager {
     reconStorageConfig = new ReconStorageConfig(conf, reconUtils);
     versionManager = new HDDSLayoutVersionManager(
         reconStorageConfig.getLayoutVersion());
-    store = DBStoreBuilder.createDBStore(conf, new ReconSCMDBDefinition());
+    store = DBStoreBuilder.createDBStore(conf, ReconSCMDBDefinition.get());
     reconContext = new ReconContext(conf, reconUtils);
   }
 
diff --git 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconPipelineManager.java
 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconPipelineManager.java
index d723ee75e8..302772e40f 100644
--- 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconPipelineManager.java
+++ 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconPipelineManager.java
@@ -94,7 +94,7 @@ public class TestReconPipelineManager {
         temporaryFolder.toAbsolutePath().toString());
     conf.set(OZONE_SCM_NAMES, "localhost");
     scmStorageConfig = new ReconStorageConfig(conf, new ReconUtils());
-    store = DBStoreBuilder.createDBStore(conf, new ReconSCMDBDefinition());
+    store = DBStoreBuilder.createDBStore(conf, ReconSCMDBDefinition.get());
     scmhaManager = SCMHAManagerStub.getInstance(
         true, new SCMHADBTransactionBufferStub(store));
     scmContext = SCMContext.emptyContext();
diff --git 
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/debug/DBDefinitionFactory.java
 
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/debug/DBDefinitionFactory.java
index 2f9c39db27..87482cb549 100644
--- 
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/debug/DBDefinitionFactory.java
+++ 
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/debug/DBDefinitionFactory.java
@@ -56,7 +56,7 @@ public final class DBDefinitionFactory {
 
   static {
     final Map<String, DBDefinition> map = new HashMap<>();
-    Arrays.asList(SCMDBDefinition.get(), OMDBDefinition.get(), new 
ReconSCMDBDefinition())
+    Arrays.asList(SCMDBDefinition.get(), OMDBDefinition.get(), 
ReconSCMDBDefinition.get())
         .forEach(dbDefinition -> map.put(dbDefinition.getName(), 
dbDefinition));
     DB_MAP = Collections.unmodifiableMap(map);
   }
diff --git 
a/hadoop-ozone/tools/src/test/java/org/apache/hadoop/ozone/debug/TestDBDefinitionFactory.java
 
b/hadoop-ozone/tools/src/test/java/org/apache/hadoop/ozone/debug/TestDBDefinitionFactory.java
index b39865ce9d..5f0be7859d 100644
--- 
a/hadoop-ozone/tools/src/test/java/org/apache/hadoop/ozone/debug/TestDBDefinitionFactory.java
+++ 
b/hadoop-ozone/tools/src/test/java/org/apache/hadoop/ozone/debug/TestDBDefinitionFactory.java
@@ -50,8 +50,7 @@ public class TestDBDefinitionFactory {
     definition = 
DBDefinitionFactory.getDefinition(SCMDBDefinition.get().getName());
     assertInstanceOf(SCMDBDefinition.class, definition);
 
-    definition = DBDefinitionFactory.getDefinition(
-        new ReconSCMDBDefinition().getName());
+    definition = 
DBDefinitionFactory.getDefinition(ReconSCMDBDefinition.get().getName());
     assertInstanceOf(ReconSCMDBDefinition.class, definition);
 
     definition = DBDefinitionFactory.getDefinition(


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to