[ 
https://issues.apache.org/jira/browse/HADOOP-7601?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13095432#comment-13095432
 ] 

Luke Lu commented on HADOOP-7601:
---------------------------------

bq. This is not true, it loads as many file systems classes as defined in the 
service file.

That's good to know, thanks :) But the real problem is that in order to query 
the schemes you have to instantiate every file system object which can be very 
expensive (esp. all the resulting loading of dependent classes) and unnecessary 
(people typically only use one dfs implementation) and mandate a side effect 
free default constructor for every FileSystem implementation. Loading a single 
provider (per jar) then querying for support and using a factory is much more 
efficient and flexible. ServiceLoader is a primitive load time only DI solution 
with limited functionality. That's probably the reason that I never use 
non-provider bindings in the service files :)

> Move common fs implementations to a hadoop-fs module
> ----------------------------------------------------
>
>                 Key: HADOOP-7601
>                 URL: https://issues.apache.org/jira/browse/HADOOP-7601
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: fs
>            Reporter: Luke Lu
>             Fix For: 0.23.0
>
>
> Much of the hadoop-common dependencies is from the fs implementations. We 
> have more fs implementations on the way (ceph, lafs etc). I propose that we 
> move all the fs implementations to a hadoop-fs module under 
> hadoop-common-project.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to