hemantk-12 commented on code in PR #5454:
URL: https://github.com/apache/ozone/pull/5454#discussion_r1364304904


##########
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmSnapshotManager.java:
##########
@@ -535,42 +536,37 @@ public SnapshotDiffCleanupService 
getSnapshotDiffCleanupService() {
    * @param keyPrefix DB key prefix String
    * @return endKey String, or null if no keys with such prefix is found
    */
-  private static String findEndKeyGivenPrefix(
+  private static String performOperationGivenPrefix(
       TableIterator<String, ? extends Table.KeyValue<String, ?>> keyIter,
-      String keyPrefix) throws IOException {
-
-    String endKey;
+      String keyPrefix, ThrowableFunction<Table.KeyValue<String, ?>,
+      Void, IOException> operationFunction) throws IOException {
+    String endKey = null;
     keyIter.seek(keyPrefix);

Review Comment:
   IMO it is unnecessary to use seek here and just remove`keyPrefix`. It could 
be simply to apply operation on each entry of iteration.
   e.g.
   ```
     private static void performOperationGivenPrefix(
         TableIterator<String, ? extends Table.KeyValue<String, ?>> keyIter,
         ThrowableFunction<Table.KeyValue<String, ?>,
         Void, IOException> operationFunction) throws IOException {
       long startTime = System.nanoTime();
       while (keyIter.hasNext()) {
         Table.KeyValue<String, ?> entry = keyIter.next();
         operationFunction.apply(entry);
       }
       // Time took for the iterator to finish (in ns)
       long timeElapsed = System.nanoTime() - startTime;
       if (timeElapsed >= DB_TABLE_ITER_LOOP_THRESHOLD_NS) {
         // Print time elapsed
         LOG.warn("Took {} ns to find endKey. Caller is {}", timeElapsed,
             new Throwable().fillInStackTrace().getStackTrace()[1]
                 .getMethodName());
       }
     }
   ```
   
   If you change it to suggested, change the function name to appropriate. 



##########
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmSnapshotManager.java:
##########
@@ -530,48 +531,40 @@ public SnapshotDiffCleanupService 
getSnapshotDiffCleanupService() {
   }
 
   /**
-   * Helper method to locate the end key with the given prefix and iterator.
+   * Helper method to perform operation on keys with a given prefix and 
iterator
    * @param keyIter TableIterator
    * @param keyPrefix DB key prefix String
    * @return endKey String, or null if no keys with such prefix is found
    */
-  private static String findEndKeyGivenPrefix(
+  private static void performOperationGivenPrefix(
       TableIterator<String, ? extends Table.KeyValue<String, ?>> keyIter,
-      String keyPrefix) throws IOException {
-
-    String endKey;
+      String keyPrefix, ThrowableFunction<Table.KeyValue<String, ?>,

Review Comment:
   Please add `operationFunction` in java doc comment of 
`performOperationGivenPrefix`.



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to