wchevreuil commented on code in PR #5339:
URL: https://github.com/apache/hbase/pull/5339#discussion_r1281631574


##########
hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/PrefetchExecutor.java:
##########
@@ -53,7 +56,8 @@ public final class PrefetchExecutor {
   private static final Map<Path, Future<?>> prefetchFutures = new 
ConcurrentSkipListMap<>();
   /** Set of files for which prefetch is completed */
   @edu.umd.cs.findbugs.annotations.SuppressWarnings(value = 
"MS_SHOULD_BE_FINAL")
-  private static HashMap<String, Boolean> prefetchCompleted = new HashMap<>();
+  private static ConcurrentHashMap<String, Long> regionPrefetchSizeMap = new 
ConcurrentHashMap<>();

Review Comment:
   OOP good practices: "Program to interfaces"`Map<String, Long> 
regionPrefetchSizeMap = new ConcurrentHashMap<>();`



##########
hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/PrefetchExecutor.java:
##########
@@ -53,7 +56,8 @@ public final class PrefetchExecutor {
   private static final Map<Path, Future<?>> prefetchFutures = new 
ConcurrentSkipListMap<>();
   /** Set of files for which prefetch is completed */
   @edu.umd.cs.findbugs.annotations.SuppressWarnings(value = 
"MS_SHOULD_BE_FINAL")
-  private static HashMap<String, Boolean> prefetchCompleted = new HashMap<>();
+  private static ConcurrentHashMap<String, Long> regionPrefetchSizeMap = new 
ConcurrentHashMap<>();
+  private static HashMap<String, Map<String, Long>> prefetchCompleted = new 
HashMap<>();

Review Comment:
   Should use `Map<String,Pair<String,Long>> prefetchCompleted`. 



##########
hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/PrefetchExecutor.java:
##########
@@ -120,9 +124,35 @@ public static void request(Path path, Runnable runnable) {
     }
   }
 
-  public static void complete(Path path) {
+  private static void removeFileFromPrefetch(String hFileName) {
+    // Update the regionPrefetchedSizeMap before removing the file from 
prefetchCompleted
+    if (prefetchCompleted.containsKey(hFileName)) {
+      Map.Entry<String, Long> regionEntry =
+        prefetchCompleted.get(hFileName).entrySet().iterator().next();
+      String regionEncodedName = regionEntry.getKey();
+      long filePrefetchedSize = regionEntry.getValue();
+      if (LOG.isDebugEnabled()) {

Review Comment:
   Nit: no need for this check, since we are not doing any computation on the 
debug message.



-- 
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...@hbase.apache.org

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

Reply via email to