jihoonson commented on a change in pull request #11879:
URL: https://github.com/apache/druid/pull/11879#discussion_r743873821



##########
File path: core/src/main/java/org/apache/druid/java/util/common/FileUtils.java
##########
@@ -379,6 +379,27 @@ public static File createTempDir(@Nullable final String 
prefix)
     }
   }
 
+  /**
+   * Create "directory" and all intermediate directories as needed. If the 
directory is successfully created, or already
+   * exists, returns quietly. Otherwise, throws an IOException.
+   *
+   * Simpler to use than {@link File#mkdirs()}, and more reliable since it is 
safe from races where two threads try

Review comment:
       This method seems similar to 
`org.apache.commons.io.FileUtils.forceMkdir()` besides this handling for the 
race, and so perhaps we can fix the anti-pattern if we have and use it instead 
of adding a new method?

##########
File path: core/src/main/java/org/apache/druid/java/util/common/FileUtils.java
##########
@@ -379,6 +379,27 @@ public static File createTempDir(@Nullable final String 
prefix)
     }
   }
 
+  /**
+   * Create "directory" and all intermediate directories as needed. If the 
directory is successfully created, or already
+   * exists, returns quietly. Otherwise, throws an IOException.
+   *
+   * Simpler to use than {@link File#mkdirs()}, and more reliable since it is 
safe from races where two threads try

Review comment:
       Do we have this issue today? Or is this a future-proof? The race in 
creating directory sounds like an anti-pattern because.. why not using a single 
thread to prepare the directory and then letting other threads write their 
files without race?




-- 
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