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

John George commented on HADOOP-8319:
-------------------------------------

bq. First, a general question: why change the visible of LocalFs ctor to public?
It is needed by one of the tests (that is not in the same package), which 
unfortunately was missing in the latest patch I uploaded. Will upload the right 
patch soon

bq. This patch doesn't work when a path symlinks off to a different afs. 
fc.setWriteChecksum(boolean, Path) will instantiate the resolved afs, set the 
flag, the afs instance goes "poof", and the subsequent create will get another 
instance of the afs with the default value. One solution might be to cache all 
the afs used by the context so the value persists.
Good catch Daryn. You are right that the patch will not work on paths when it 
leads to a different afs than the {{defaultFS}} already cached in FC. I guess a 
discussion to resolve this is happening in HADOOP-6356.

bq. However, I'm not comfortable with the misleading semantics of 
fc.setWriteChecksum(boolean, Path). The path argument implies the flag applies 
only to the given path, but in this patch it applies to the entire afs of the 
given path. I'd be more comfortable with mimicing fs and just have 
fc.setWriteChecksum(boolean) set an instance var in the fc. fc.create calls the 
resolved afs.setWriteChecksum, and then afs.create.
The reason {{setWriteChecksum}} requires a patch argument is because 
FileContext, just like ViewFS, works on paths and resolves the path to an FS. 
If we remove the path, {{setWriteChecksum}} will have the side effect that it 
apply to all the FS that the filecontext resolves in a path.

bq. What I think ultimately needs to be done is for fs/afs create to accept a 
flag for whether checksums are written. This provides more granularity, avoids 
threading issues where one thread changes the value for all threads, prevents 
viewfs from applying the setting to all its mounts, and would solve the 
unexpected behavior in FileSystem where the cache causes the value to change in 
every instance/reference to the fs.
Passing the flag as part of create sounds like a good idea to me. If you feel 
strongly for this, we could file a JIRA to address this at a later point in 
time.

                
> FileContext does not support setWriteChecksum
> ---------------------------------------------
>
>                 Key: HADOOP-8319
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8319
>             Project: Hadoop Common
>          Issue Type: Bug
>    Affects Versions: 2.0.0, 3.0.0
>            Reporter: John George
>            Assignee: John George
>         Attachments: HADOOP-8319.patch, HADOOP-8319.patch, HADOOP-8319.patch, 
> HADOOP-8319.patch
>
>
> File Context does not support setWriteChecksum and hence users trying
> to use this functionality fails.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to