jojochuang commented on code in PR #8447:
URL: https://github.com/apache/ozone/pull/8447#discussion_r2093700129


##########
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/snapshot/OMSnapshotPurgeRequest.java:
##########
@@ -140,6 +140,7 @@ private void updateSnapshotInfoAndCache(SnapshotInfo 
snapInfo, OmMetadataManager
       // current snapshot is deleted. We can potentially
       // reclaim more keys in the next snapshot.
       snapInfo.setDeepClean(false);
+      snapInfo.setDeepCleanedDeletedDir(false);

Review Comment:
   this is part of https://github.com/apache/ozone/pull/8451?



##########
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/service/KeyDeletingService.java:
##########
@@ -191,6 +174,122 @@ private KeyDeletingTask(KeyDeletingService service) {
       this.deletingService = service;
     }
 
+    private OzoneManagerProtocolProtos.SetSnapshotPropertyRequest 
getSetSnapshotRequestUpdatingExclusiveSize(
+        Map<UUID, Long> exclusiveSizeMap, Map<UUID, Long> 
exclusiveReplicatedSizeMap, UUID snapshotID) {
+      OzoneManagerProtocolProtos.SnapshotSize snapshotSize = 
OzoneManagerProtocolProtos.SnapshotSize.newBuilder()
+          .setExclusiveSize(
+              exclusiveSizeMap.getOrDefault(snapshotID, 0L))
+          .setExclusiveReplicatedSize(
+              exclusiveReplicatedSizeMap.getOrDefault(
+                  snapshotID, 0L))
+          .build();
+      exclusiveSizeMap.remove(snapshotID);
+      exclusiveReplicatedSizeMap.remove(snapshotID);
+
+      return OzoneManagerProtocolProtos.SetSnapshotPropertyRequest.newBuilder()
+          .setSnapshotKey(snapshotChainManager.getTableKey(snapshotID))
+          .setSnapshotSize(snapshotSize)
+          .build();
+    }
+
+    /**
+     *
+     * @param currentSnapshotInfo if null, deleted directories in AOS should 
be processed.
+     * @param keyManager KeyManager of the underlying store.
+     */

Review Comment:
       /**
        * Scans the OM database for keys or rename entries that are eligible 
for deletion
        * in the given store (either the active store or a specific snapshot).
        * 
        * It collects a batch of eligible keys and/or renamed entries up to the 
specified
        * remainNum limit, submits deletion requests to SCM, and, on successful 
confirmation,
        * removes the entries from the metadata store. The method also updates 
snapshot
        * properties related to reclaimed space and deep cleaning flags as 
required.
        *
        * @param currentSnapshotInfo If non-null, processes deleted keys for a 
specific snapshot; 
        *                            if null, processes for the active object 
store.
        * @param keyManager          The KeyManager instance for accessing keys 
in the underlying store.
        * @param remainNum           The maximum number of entries to process 
in this invocation.
        * @return The number of entries remaining to be processed after this 
method runs.
        * @throws IOException If any error occurs during OM DB or SCM 
operations.
        */



##########
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/service/KeyDeletingService.java:
##########
@@ -191,6 +174,122 @@ private KeyDeletingTask(KeyDeletingService service) {
       this.deletingService = service;
     }
 
+    private OzoneManagerProtocolProtos.SetSnapshotPropertyRequest 
getSetSnapshotRequestUpdatingExclusiveSize(
+        Map<UUID, Long> exclusiveSizeMap, Map<UUID, Long> 
exclusiveReplicatedSizeMap, UUID snapshotID) {
+      OzoneManagerProtocolProtos.SnapshotSize snapshotSize = 
OzoneManagerProtocolProtos.SnapshotSize.newBuilder()
+          .setExclusiveSize(
+              exclusiveSizeMap.getOrDefault(snapshotID, 0L))
+          .setExclusiveReplicatedSize(
+              exclusiveReplicatedSizeMap.getOrDefault(
+                  snapshotID, 0L))
+          .build();
+      exclusiveSizeMap.remove(snapshotID);
+      exclusiveReplicatedSizeMap.remove(snapshotID);
+
+      return OzoneManagerProtocolProtos.SetSnapshotPropertyRequest.newBuilder()
+          .setSnapshotKey(snapshotChainManager.getTableKey(snapshotID))
+          .setSnapshotSize(snapshotSize)
+          .build();
+    }
+
+    /**
+     *
+     * @param currentSnapshotInfo if null, deleted directories in AOS should 
be processed.
+     * @param keyManager KeyManager of the underlying store.
+     */
+    private int processDeletedKeysForStore(SnapshotInfo currentSnapshotInfo, 
KeyManager keyManager,

Review Comment:
   this method appears to be extracted out of the below call(). But why is it 
much longer. Can it be broken up into smaller pieces.



##########
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/service/AbstractKeyDeletingService.java:
##########
@@ -658,4 +670,35 @@ public long getMovedFilesCount() {
   public BootstrapStateHandler.Lock getBootstrapStateLock() {
     return lock;
   }
+
+  /**
+   * Submits SetSnapsnapshotPropertyRequest to OM.
+   * @param setSnapshotPropertyRequests request to be sent to OM
+   */
+  protected void submitSetSnapshotRequest(
+      List<OzoneManagerProtocolProtos.SetSnapshotPropertyRequest> 
setSnapshotPropertyRequests) {
+    if (setSnapshotPropertyRequests.isEmpty()) {
+      return;
+    }
+    OzoneManagerProtocolProtos.OMRequest omRequest = 
OzoneManagerProtocolProtos.OMRequest.newBuilder()
+        .setCmdType(OzoneManagerProtocolProtos.Type.SetSnapshotProperty)
+        .addAllSetSnapshotPropertyRequests(setSnapshotPropertyRequests)
+        .setClientId(clientId.toString())
+        .build();
+    Map<String, SnapshotInfo> val = new HashMap<>();
+    setSnapshotPropertyRequests
+        .forEach(i -> {
+          try {
+            val.put(i.getSnapshotKey(),

Review Comment:
   does the hashmap val get used somewhere?



##########
hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto:
##########
@@ -1392,6 +1392,7 @@ message PurgeKeysRequest {
     repeated SnapshotMoveKeyInfos keysToUpdate = 3;
     // previous snapshotID can also be null & this field would be absent in 
older requests.
     optional NullableUUID expectedPreviousSnapshotID = 4;
+    repeated string renamedKeys = 5;

Review Comment:
   does OMKeyPurgeRequest handler use this field?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@ozone.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@ozone.apache.org
For additional commands, e-mail: issues-h...@ozone.apache.org

Reply via email to