hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sanjay Radia (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HADOOP-4044) Create symbolic links in HDFS
Date Wed, 08 Oct 2008 02:37:44 GMT

    [ 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

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

View raw message