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

swamirishi 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 dc47897721 HDDS-12611. Snapshot creation is removing extra keys from 
AOS's DB (#8094)
dc47897721 is described below

commit dc4789772168efe312f7832b6bb3bc3e7bc40d1b
Author: Hemant Kumar <[email protected]>
AuthorDate: Sun Mar 16 11:25:14 2025 -0700

    HDDS-12611. Snapshot creation is removing extra keys from AOS's DB (#8094)
---
 .../apache/hadoop/ozone/om/OMMetadataManager.java  |  3 ++
 .../apache/hadoop/ozone/om/OmSnapshotManager.java  |  6 +--
 .../service/SnapshotDirectoryCleaningService.java  |  3 +-
 .../hadoop/ozone/om/snapshot/SnapshotUtils.java    | 50 +---------------------
 .../snapshot/TestOMSnapshotCreateResponse.java     |  4 +-
 5 files changed, 9 insertions(+), 57 deletions(-)

diff --git 
a/hadoop-ozone/interface-storage/src/main/java/org/apache/hadoop/ozone/om/OMMetadataManager.java
 
b/hadoop-ozone/interface-storage/src/main/java/org/apache/hadoop/ozone/om/OMMetadataManager.java
index da757e7fd5..02ef9bf12a 100644
--- 
a/hadoop-ozone/interface-storage/src/main/java/org/apache/hadoop/ozone/om/OMMetadataManager.java
+++ 
b/hadoop-ozone/interface-storage/src/main/java/org/apache/hadoop/ozone/om/OMMetadataManager.java
@@ -121,6 +121,7 @@ public interface OMMetadataManager extends DBStoreHAManager 
{
    *
    * @param volume - Volume name
    * @param bucket - Bucket name
+   * @return /volume/bucket/
    */
   String getBucketKeyPrefix(String volume, String bucket);
 
@@ -129,6 +130,8 @@ public interface OMMetadataManager extends DBStoreHAManager 
{
    *
    * @param volume - Volume name
    * @param bucket - Bucket name
+   * @return /volumeId/bucketId/
+   *    e.g. /-9223372036854772480/-9223372036854771968/
    */
   String getBucketKeyPrefixFSO(String volume, String bucket) throws 
IOException;
 
diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmSnapshotManager.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmSnapshotManager.java
index 21f8b9fa28..11bcd51c99 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmSnapshotManager.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmSnapshotManager.java
@@ -42,7 +42,6 @@
 import static 
org.apache.hadoop.ozone.om.snapshot.SnapshotDiffManager.getSnapshotRootPath;
 import static 
org.apache.hadoop.ozone.om.snapshot.SnapshotUtils.checkSnapshotActive;
 import static 
org.apache.hadoop.ozone.om.snapshot.SnapshotUtils.dropColumnFamilyHandle;
-import static 
org.apache.hadoop.ozone.om.snapshot.SnapshotUtils.getOzonePathKeyForFso;
 import static 
org.apache.hadoop.ozone.snapshot.SnapshotDiffResponse.JobStatus.DONE;
 
 import com.google.common.annotations.VisibleForTesting;
@@ -499,8 +498,7 @@ private static void 
deleteKeysFromDelDirTableInSnapshotScope(
       String bucketName, BatchOperation batchOperation) throws IOException {
 
     // Range delete start key (inclusive)
-    final String keyPrefix = getOzonePathKeyForFso(omMetadataManager,
-        volumeName, bucketName);
+    final String keyPrefix = 
omMetadataManager.getBucketKeyPrefixFSO(volumeName, bucketName);
 
     try (TableIterator<String, ? extends Table.KeyValue<String, OmKeyInfo>>
          iter = omMetadataManager.getDeletedDirTable().iterator(keyPrefix)) {
@@ -566,7 +564,7 @@ private static void 
deleteKeysFromDelKeyTableInSnapshotScope(
 
     // Range delete start key (inclusive)
     final String keyPrefix =
-        omMetadataManager.getOzoneKey(volumeName, bucketName, "");
+        omMetadataManager.getBucketKeyPrefix(volumeName, bucketName);
 
     try (TableIterator<String,
         ? extends Table.KeyValue<String, RepeatedOmKeyInfo>>
diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/service/SnapshotDirectoryCleaningService.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/service/SnapshotDirectoryCleaningService.java
index 654655680d..ed79c13ff9 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/service/SnapshotDirectoryCleaningService.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/service/SnapshotDirectoryCleaningService.java
@@ -19,7 +19,6 @@
 
 import static 
org.apache.hadoop.ozone.om.helpers.SnapshotInfo.SnapshotStatus.SNAPSHOT_ACTIVE;
 import static 
org.apache.hadoop.ozone.om.request.file.OMFileRequest.getDirectoryInfo;
-import static 
org.apache.hadoop.ozone.om.snapshot.SnapshotUtils.getOzonePathKeyForFso;
 import static 
org.apache.hadoop.ozone.om.snapshot.SnapshotUtils.getPreviousSnapshot;
 
 import com.google.common.annotations.VisibleForTesting;
@@ -207,7 +206,7 @@ public BackgroundTaskResult call() {
                   .getKeyTable(bucketInfo.getBucketLayout());
             }
 
-            String dbBucketKeyForDir = getOzonePathKeyForFso(metadataManager,
+            String dbBucketKeyForDir = metadataManager.getBucketKeyPrefixFSO(
                 currSnapInfo.getVolumeName(), currSnapInfo.getBucketName());
             try (ReferenceCounted<OmSnapshot>
                      rcCurrOmSnapshot = omSnapshotManager.getActiveSnapshot(
diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/snapshot/SnapshotUtils.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/snapshot/SnapshotUtils.java
index d3d12452be..3b1b547511 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/snapshot/SnapshotUtils.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/snapshot/SnapshotUtils.java
@@ -36,7 +36,6 @@
 import java.util.UUID;
 import org.apache.hadoop.hdds.utils.db.managed.ManagedRocksDB;
 import org.apache.hadoop.ozone.om.OMMetadataManager;
-import org.apache.hadoop.ozone.om.OmMetadataManagerImpl;
 import org.apache.hadoop.ozone.om.OzoneManager;
 import org.apache.hadoop.ozone.om.SnapshotChainManager;
 import org.apache.hadoop.ozone.om.exceptions.OMException;
@@ -221,9 +220,8 @@ public static Map<String, String> 
getColumnFamilyToKeyPrefixMap(
       String volumeName,
       String bucketName
   ) throws IOException {
-    String keyPrefix = getOzonePathKey(volumeName, bucketName);
-    String keyPrefixFso = getOzonePathKeyForFso(omMetadataManager, volumeName,
-        bucketName);
+    String keyPrefix = omMetadataManager.getBucketKeyPrefix(volumeName, 
bucketName);
+    String keyPrefixFso = omMetadataManager.getBucketKeyPrefixFSO(volumeName, 
bucketName);
 
     Map<String, String> columnFamilyToPrefixMap = new HashMap<>();
     columnFamilyToPrefixMap.put(KEY_TABLE, keyPrefix);
@@ -232,50 +230,6 @@ public static Map<String, String> 
getColumnFamilyToKeyPrefixMap(
     return columnFamilyToPrefixMap;
   }
 
-  /**
-   * Helper method to generate /volumeName/bucketBucket/ DB key prefix from
-   * given volume name and bucket name as a prefix for legacy and OBS buckets.
-   * Follows:
-   * {@link OmMetadataManagerImpl#getOzonePathKey(long, long, long, String)}.
-   * <p>
-   * Note: Currently, this is only intended to be a special use case in
-   * Snapshot. If this is used elsewhere, consider moving this to
-   * {@link OMMetadataManager}.
-   *
-   * @param volumeName volume name
-   * @param bucketName bucket name
-   * @return /volumeName/bucketName/
-   */
-  public static String getOzonePathKey(String volumeName,
-                                       String bucketName) throws IOException {
-    return OM_KEY_PREFIX + volumeName + OM_KEY_PREFIX + bucketName +
-        OM_KEY_PREFIX;
-  }
-
-  /**
-   * Helper method to generate /volumeId/bucketId/ DB key prefix from given
-   * volume name and bucket name as a prefix for FSO buckets.
-   * Follows:
-   * {@link OmMetadataManagerImpl#getOzonePathKey(long, long, long, String)}.
-   * <p>
-   * Note: Currently, this is only intended to be a special use case in
-   * Snapshot. If this is used elsewhere, consider moving this to
-   * {@link OMMetadataManager}.
-   *
-   * @param volumeName volume name
-   * @param bucketName bucket name
-   * @return /volumeId/bucketId/
-   *    e.g. /-9223372036854772480/-9223372036854771968/
-   */
-  public static String getOzonePathKeyForFso(OMMetadataManager metadataManager,
-                                             String volumeName,
-                                             String bucketName)
-      throws IOException {
-    final long volumeId = metadataManager.getVolumeId(volumeName);
-    final long bucketId = metadataManager.getBucketId(volumeName, bucketName);
-    return OM_KEY_PREFIX + volumeId + OM_KEY_PREFIX + bucketId + OM_KEY_PREFIX;
-  }
-
   /**
    * Returns merged repeatedKeyInfo entry with the existing deleted entry in 
the table.
    * @param snapshotMoveKeyInfos keyInfos to be added.
diff --git 
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/snapshot/TestOMSnapshotCreateResponse.java
 
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/snapshot/TestOMSnapshotCreateResponse.java
index 5e4148fb68..031e6656b4 100644
--- 
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/snapshot/TestOMSnapshotCreateResponse.java
+++ 
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/snapshot/TestOMSnapshotCreateResponse.java
@@ -41,7 +41,6 @@
 import org.apache.hadoop.ozone.om.helpers.OmKeyInfo;
 import org.apache.hadoop.ozone.om.helpers.RepeatedOmKeyInfo;
 import org.apache.hadoop.ozone.om.helpers.SnapshotInfo;
-import org.apache.hadoop.ozone.om.snapshot.SnapshotUtils;
 import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos;
 import 
org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.CreateSnapshotResponse;
 import 
org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMResponse;
@@ -211,8 +210,7 @@ private Set<String> addTestKeysToDeletedDirTable(String 
volumeName,
     // Add deletedDirectoryTable key entries that "surround" the snapshot scope
     Set<String> sentinelKeys = new HashSet<>();
 
-    final String dbKeyPfx = SnapshotUtils.getOzonePathKeyForFso(
-            omMetadataManager, volumeName, bucketName);
+    final String dbKeyPfx = 
omMetadataManager.getBucketKeyPrefixFSO(volumeName, bucketName);
 
     // Calculate offset to bucketId's last character in dbKeyPfx.
     // First -1 for offset, second -1 for second to last char (before '/')


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

Reply via email to