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

Sanjay Radia commented on HADOOP-4044:
--------------------------------------

Doug says>>>>>>
>> Doug should we pay the cost and do it the "right way" now?
>Yes, of course.
>> I prefer to use exceptions [ ... ]
>But why? You've said it's "cleaner" and "simpler". I don't follow your 
>argument. "Simpler" could mean fewer lines of code. I don't think it will 
>actually change the lines of code much. Changing the return types will change 
>more lines of code, hence the change is more complex, but the resulting code 
>will probably be around the same size, regardless of which approach is taken. 
>"Cleaner" is subjective, like "better", and requires elaboration.
>My argument is that we should model normal functionality with normal 
>programming: methods, parameters, return values and data structures. Do you 
>disagree with this? Or do you think that links are not normal functionality?
>You keep arguing that "exceptions can be used for recoverable conditions". 
>Indeed they can. But is a link really best modeled as a "recoverable 
>condition"? This sounds to me like a rationalization for using exceptions, not 
>a reason to use exceptions over data structures.
>Please provide a reasoned explanation for your disagreement. Otherwise it is 
>hard to move forward.

*Two part answer below: (1) response to the above, and (2) in the sprint of 
moving forward.*

This a very one-sided evaluation of the discussion that has occurred above. 
First, I have  said that we have a difference of opinion (essentially granting 
you that you have a reasonable point of view).
I have  *not* come out and said that you are not offering any reasonable 
arguments.
Has reasonable arguments been offered for my side? Yes. you are just not 
willing to see it because you think the use of exceptions in this
situation is blasphemous. 
 I am not the only one who finds the the use of exceptions clean and elegant 
and the alternate view not so; there are others who have
said similar things.
- Konstantine
- Raghu
- Dhruba - "Dhruba> Thus, exceptions could be used here [NN]. This keeps most 
of the HDFS code clean and elegant. " He however argues that we should not use 
exceptions for RPC. But he does state that use of exceptions make the NN clean 
and elegant.

Hence many have provided counter arguments to your view.
Myself and other have tried to explain  what we have meant by "elegant and 
simple". 
Since several of us are saying the same thing please grant us that we are 
seeing something you are not even if we are all wrong.
I  agree that terms like simple and elegant are not as precise as one would 
like but then neither are   "hacky" or  "perversion"  

What we have is a difference in opinion - both of are convinced that that the 
other approach is not good or is invalid. (BTW i don't believe 
your approach is invalid and wrong, I just prefer mine.) 

*In the spirit of moving forward:* 
* symlink vs link  - I am okay with either but prefer symlink. 

* use of exceptions inside NN
   +1. 
   I believe this keeps the code and the internal interfaces "simple and 
elegant"  (others such as Dhruba have said the same).
   It has nothing to do with how much code needs to get changed.
  Lets agree to disagree here. 
  Doug if you want to change the NN code to not use exceptions, I would like to 
have an opportunity to sit with you and make one last attempt
to help you see my point of view or get convinced by yours. Eitherway, we can  
discuss this  over a beer someday (I will buy).

* Not using exceptions for RPC interface - use the patch approach or Owen's 
variation on it.
   I can live with this.
  I can justify not using exceptions here to some degree because the impact is 
limited and also some RPC systems do not have exceptions ( not a very strong 
argument because we already use exceptions in our RPC interface) 
 I am okay with the way the patch has done it or the alternative that Owen has 
offered. 
 (Its a six of this half a dozen of the other). As I noted, Owen's approach is 
potentially better for evolution and versioning.

* Having the NN compose the symlink and the rest of the path
   I can live with either - I prefer to keep them separate and have the client 
side do the composition as information is preserved and furthermore it allows 
us to deal other ways of composing the two parts (I have no concrete examples 
of needing this at this stage).








> Create symbolic links in HDFS
> -----------------------------
>
>                 Key: HADOOP-4044
>                 URL: https://issues.apache.org/jira/browse/HADOOP-4044
>             Project: Hadoop Core
>          Issue Type: New Feature
>          Components: dfs
>            Reporter: dhruba borthakur
>            Assignee: dhruba borthakur
>         Attachments: symLink1.patch, symLink1.patch, symLink4.patch, 
> symLink5.patch, symLink6.patch, symLink8.patch, symLink9.patch
>
>
> HDFS should support symbolic links. A symbolic link is a special type of file 
> that contains a reference to another file or directory in the form of an 
> absolute or relative path and that affects pathname resolution. Programs 
> which read or write to files named by a symbolic link will behave as if 
> operating directly on the target file. However, archiving utilities can 
> handle symbolic links specially and manipulate them directly.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to