This is an automated email from the ASF dual-hosted git repository.

sammichen 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 9c187df7df HDDS-10398. Remove deleted_blocks table in container schema 
V2 and V3 definition (#6237)
9c187df7df is described below

commit 9c187df7df65ea581f66dd97e44aabd1817cd35d
Author: Sammi Chen <[email protected]>
AuthorDate: Thu Feb 22 13:40:11 2024 +0800

    HDDS-10398. Remove deleted_blocks table in container schema V2 and V3 
definition (#6237)
---
 .../metadata/AbstractDatanodeDBDefinition.java         |  4 ----
 .../container/metadata/AbstractDatanodeStore.java      | 10 ++--------
 .../metadata/DatanodeSchemaOneDBDefinition.java        |  1 -
 .../metadata/DatanodeSchemaThreeDBDefinition.java      | 18 ------------------
 .../metadata/DatanodeSchemaTwoDBDefinition.java        | 17 -----------------
 .../container/metadata/DatanodeStoreSchemaOneImpl.java |  8 +++++++-
 .../metadata/DatanodeStoreSchemaThreeImpl.java         |  5 -----
 7 files changed, 9 insertions(+), 54 deletions(-)

diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/AbstractDatanodeDBDefinition.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/AbstractDatanodeDBDefinition.java
index 2c1c3c214d..c174108ba2 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/AbstractDatanodeDBDefinition.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/AbstractDatanodeDBDefinition.java
@@ -21,7 +21,6 @@ import org.apache.hadoop.hdds.conf.ConfigurationSource;
 import org.apache.hadoop.hdds.utils.db.DBColumnFamilyDefinition;
 import org.apache.hadoop.hdds.utils.db.DBDefinition;
 import org.apache.hadoop.ozone.container.common.helpers.BlockData;
-import org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList;
 
 import java.io.File;
 
@@ -70,7 +69,4 @@ public abstract class AbstractDatanodeDBDefinition implements 
DBDefinition {
 
   public abstract DBColumnFamilyDefinition<String, Long>
       getMetadataColumnFamily();
-
-  public abstract DBColumnFamilyDefinition<String, ChunkInfoList>
-      getDeletedBlocksColumnFamily();
 }
diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/AbstractDatanodeStore.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/AbstractDatanodeStore.java
index b451071d70..faa3b195f1 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/AbstractDatanodeStore.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/AbstractDatanodeStore.java
@@ -60,8 +60,6 @@ public abstract class AbstractDatanodeStore implements 
DatanodeStore {
 
   private Table<String, BlockData> blockDataTableWithIterator;
 
-  private Table<String, ChunkInfoList> deletedBlocksTable;
-
   static final Logger LOG =
       LoggerFactory.getLogger(AbstractDatanodeStore.class);
   private volatile DBStore store;
@@ -154,10 +152,6 @@ public abstract class AbstractDatanodeStore implements 
DatanodeStore {
 
       blockDataTable = new DatanodeTable<>(blockDataTableWithIterator);
       checkTableStatus(blockDataTable, blockDataTable.getName());
-
-      deletedBlocksTable = new DatanodeTable<>(
-              dbDef.getDeletedBlocksColumnFamily().getTable(this.store));
-      checkTableStatus(deletedBlocksTable, deletedBlocksTable.getName());
     }
   }
 
@@ -191,7 +185,7 @@ public abstract class AbstractDatanodeStore implements 
DatanodeStore {
 
   @Override
   public Table<String, ChunkInfoList> getDeletedBlocksTable() {
-    return deletedBlocksTable;
+    throw new UnsupportedOperationException("DeletedBlocksTable is only 
supported in Container Schema One");
   }
 
   @Override
@@ -250,7 +244,7 @@ public abstract class AbstractDatanodeStore implements 
DatanodeStore {
     return this.blockDataTableWithIterator;
   }
 
-  private static void checkTableStatus(Table<?, ?> table, String name)
+  protected static void checkTableStatus(Table<?, ?> table, String name)
           throws IOException {
     String logMessage = "Unable to get a reference to %s table. Cannot " +
             "continue.";
diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeSchemaOneDBDefinition.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeSchemaOneDBDefinition.java
index a002eef3f7..f0bab5e5d0 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeSchemaOneDBDefinition.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeSchemaOneDBDefinition.java
@@ -96,7 +96,6 @@ public class DatanodeSchemaOneDBDefinition
     return METADATA;
   }
 
-  @Override
   public DBColumnFamilyDefinition<String, ChunkInfoList>
       getDeletedBlocksColumnFamily() {
     return DELETED_BLOCKS;
diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeSchemaThreeDBDefinition.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeSchemaThreeDBDefinition.java
index 1d1c7faa69..3be229a45a 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeSchemaThreeDBDefinition.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeSchemaThreeDBDefinition.java
@@ -27,7 +27,6 @@ import org.apache.hadoop.hdds.utils.db.FixedLengthStringCodec;
 import org.apache.hadoop.hdds.utils.db.Proto2Codec;
 import org.apache.hadoop.hdds.utils.db.managed.ManagedColumnFamilyOptions;
 import org.apache.hadoop.ozone.container.common.helpers.BlockData;
-import org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList;
 import 
org.apache.hadoop.ozone.container.common.statemachine.DatanodeConfiguration;
 import org.apache.hadoop.ozone.container.common.utils.db.DatanodeDBProfile;
 
@@ -74,15 +73,6 @@ public class DatanodeSchemaThreeDBDefinition
           Long.class,
           LongCodec.get());
 
-  public static final DBColumnFamilyDefinition<String, ChunkInfoList>
-      DELETED_BLOCKS =
-      new DBColumnFamilyDefinition<>(
-          "deleted_blocks",
-          String.class,
-          FixedLengthStringCodec.get(),
-          ChunkInfoList.class,
-          ChunkInfoList.getCodec());
-
   public static final DBColumnFamilyDefinition<String, 
DeletedBlocksTransaction>
       DELETE_TRANSACTION =
       new DBColumnFamilyDefinition<>(
@@ -98,7 +88,6 @@ public class DatanodeSchemaThreeDBDefinition
       COLUMN_FAMILIES = DBColumnFamilyDefinition.newUnmodifiableMap(
          BLOCK_DATA,
          METADATA,
-         DELETED_BLOCKS,
          DELETE_TRANSACTION);
 
   public DatanodeSchemaThreeDBDefinition(String dbPath,
@@ -120,7 +109,6 @@ public class DatanodeSchemaThreeDBDefinition
 
     BLOCK_DATA.setCfOptions(cfOptions);
     METADATA.setCfOptions(cfOptions);
-    DELETED_BLOCKS.setCfOptions(cfOptions);
     DELETE_TRANSACTION.setCfOptions(cfOptions);
   }
 
@@ -140,12 +128,6 @@ public class DatanodeSchemaThreeDBDefinition
     return METADATA;
   }
 
-  @Override
-  public DBColumnFamilyDefinition<String, ChunkInfoList>
-      getDeletedBlocksColumnFamily() {
-    return DELETED_BLOCKS;
-  }
-
   public DBColumnFamilyDefinition<String, DeletedBlocksTransaction>
       getDeleteTransactionsColumnFamily() {
     return DELETE_TRANSACTION;
diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeSchemaTwoDBDefinition.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeSchemaTwoDBDefinition.java
index cc78aa6a92..cc6c3dc837 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeSchemaTwoDBDefinition.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeSchemaTwoDBDefinition.java
@@ -25,7 +25,6 @@ import org.apache.hadoop.hdds.utils.db.LongCodec;
 import org.apache.hadoop.hdds.utils.db.Proto2Codec;
 import org.apache.hadoop.hdds.utils.db.StringCodec;
 import org.apache.hadoop.ozone.container.common.helpers.BlockData;
-import org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList;
 import org.apache.hadoop.hdds.protocol.proto
     .StorageContainerDatanodeProtocolProtos.DeletedBlocksTransaction;
 
@@ -58,15 +57,6 @@ public class DatanodeSchemaTwoDBDefinition
           Long.class,
           LongCodec.get());
 
-  public static final DBColumnFamilyDefinition<String, ChunkInfoList>
-          DELETED_BLOCKS =
-          new DBColumnFamilyDefinition<>(
-                  "deleted_blocks",
-                  String.class,
-                  StringCodec.get(),
-                  ChunkInfoList.class,
-                  ChunkInfoList.getCodec());
-
   public static final DBColumnFamilyDefinition<Long, DeletedBlocksTransaction>
       DELETE_TRANSACTION =
       new DBColumnFamilyDefinition<>(
@@ -85,7 +75,6 @@ public class DatanodeSchemaTwoDBDefinition
       COLUMN_FAMILIES = DBColumnFamilyDefinition.newUnmodifiableMap(
           BLOCK_DATA,
           METADATA,
-          DELETED_BLOCKS,
           DELETE_TRANSACTION);
 
   @Override
@@ -104,12 +93,6 @@ public class DatanodeSchemaTwoDBDefinition
     return METADATA;
   }
 
-  @Override
-  public DBColumnFamilyDefinition<String, ChunkInfoList>
-      getDeletedBlocksColumnFamily() {
-    return DELETED_BLOCKS;
-  }
-
   public DBColumnFamilyDefinition<Long, DeletedBlocksTransaction>
       getDeleteTransactionsColumnFamily() {
     return DELETE_TRANSACTION;
diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeStoreSchemaOneImpl.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeStoreSchemaOneImpl.java
index 4b514c04e4..f5eb1a3d8e 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeStoreSchemaOneImpl.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeStoreSchemaOneImpl.java
@@ -28,6 +28,9 @@ import java.io.IOException;
  * places all data in the default column family.
  */
 public class DatanodeStoreSchemaOneImpl extends AbstractDatanodeStore {
+
+  private Table<String, ChunkInfoList> deletedBlocksTable;
+
   /**
    * Constructs the metadata store and starts the DB Services.
    *
@@ -38,12 +41,15 @@ public class DatanodeStoreSchemaOneImpl extends 
AbstractDatanodeStore {
       boolean openReadOnly) throws IOException {
     super(config, new DatanodeSchemaOneDBDefinition(dbPath, config),
         openReadOnly);
+    deletedBlocksTable = new DatanodeTable<>(
+        ((DatanodeSchemaOneDBDefinition) 
getDbDef()).getDeletedBlocksColumnFamily().getTable(getStore()));
+    checkTableStatus(deletedBlocksTable, deletedBlocksTable.getName());
   }
 
   @Override
   public Table<String, ChunkInfoList> getDeletedBlocksTable() {
     // Return a wrapper around the deleted blocks table to handle prefixes
     // when all data is stored in a single table.
-    return new SchemaOneDeletedBlocksTable(super.getDeletedBlocksTable());
+    return new SchemaOneDeletedBlocksTable(deletedBlocksTable);
   }
 }
diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeStoreSchemaThreeImpl.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeStoreSchemaThreeImpl.java
index ee8580defa..c16d478b16 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeStoreSchemaThreeImpl.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/metadata/DatanodeStoreSchemaThreeImpl.java
@@ -99,7 +99,6 @@ public class DatanodeStoreSchemaThreeImpl extends 
AbstractDatanodeStore
     try (BatchOperation batch = getBatchHandler().initBatchOperation()) {
       getMetadataTable().deleteBatchWithPrefix(batch, prefix);
       getBlockDataTable().deleteBatchWithPrefix(batch, prefix);
-      getDeletedBlocksTable().deleteBatchWithPrefix(batch, prefix);
       getDeleteTransactionTable().deleteBatchWithPrefix(batch, prefix);
       getBatchHandler().commitBatchOperation(batch);
     }
@@ -112,8 +111,6 @@ public class DatanodeStoreSchemaThreeImpl extends 
AbstractDatanodeStore
         getTableDumpFile(getMetadataTable(), dumpDir), prefix);
     getBlockDataTable().dumpToFileWithPrefix(
         getTableDumpFile(getBlockDataTable(), dumpDir), prefix);
-    getDeletedBlocksTable().dumpToFileWithPrefix(
-        getTableDumpFile(getDeletedBlocksTable(), dumpDir), prefix);
     getDeleteTransactionTable().dumpToFileWithPrefix(
         getTableDumpFile(getDeleteTransactionTable(), dumpDir),
         prefix);
@@ -125,8 +122,6 @@ public class DatanodeStoreSchemaThreeImpl extends 
AbstractDatanodeStore
         getTableDumpFile(getMetadataTable(), dumpDir));
     getBlockDataTable().loadFromFile(
         getTableDumpFile(getBlockDataTable(), dumpDir));
-    getDeletedBlocksTable().loadFromFile(
-        getTableDumpFile(getDeletedBlocksTable(), dumpDir));
     getDeleteTransactionTable().loadFromFile(
         getTableDumpFile(getDeleteTransactionTable(), dumpDir));
   }


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

Reply via email to