Github user NicoK commented on a diff in the pull request:

    https://github.com/apache/flink/pull/5176#discussion_r160353839
  
    --- Diff: 
flink-runtime/src/main/java/org/apache/flink/runtime/blob/BlobUtils.java ---
    @@ -127,21 +132,28 @@ private static BlobStoreService 
createFileSystemBlobStore(Configuration configur
        }
     
        /**
    -    * Creates a local storage directory for a blob service under the given 
parent directory.
    +    * Creates a local storage directory for a blob service under the 
configuration parameter given
    +    * by {@link BlobServerOptions#STORAGE_DIRECTORY}. If this is 
<tt>null</tt> or empty, we will
    +    * fall back to Flink's temp directories (given by
    +    * {@link org.apache.flink.configuration.CoreOptions#TMP_DIRS}) and 
choose one among them at
    +    * random.
         *
    -    * @param basePath
    -    *              base path, i.e. parent directory, of the storage 
directory to use (if <tt>null</tt> or
    -    *              empty, the path in <tt>java.io.tmpdir</tt> will be used)
    +    * @param config
    +    *              Flink configuration
         *
         * @return a new local storage directory
         *
         * @throws IOException
         *              thrown if the local file storage cannot be created or 
is not usable
         */
    -   static File initLocalStorageDirectory(String basePath) throws 
IOException {
    +   static File initLocalStorageDirectory(Configuration config) throws 
IOException {
    +
    +           String basePath = 
config.getString(BlobServerOptions.STORAGE_DIRECTORY);
    +
                File baseDir;
                if (StringUtils.isNullOrWhitespaceOnly(basePath)) {
    -                   baseDir = new 
File(System.getProperty("java.io.tmpdir"));
    +                   final String[] tmpDirPaths = 
TaskManagerServicesConfiguration.parseTempDirectories(config);
    +                   baseDir = new 
File(tmpDirPaths[rnd.nextInt(tmpDirPaths.length)]);
    --- End diff --
    
    Unfortunately, the BLOB caches cannot handle multiple directories that 
well. When looking for cached files, they check for their existence and 
otherwise download missing ones. Looking through all of them may be cumbersome 
as well (and should not be solved with this PR, imho).
    
    I'd also expect most use cases to use a single directory but tbh, I lack 
overview of use cases here.


---

Reply via email to