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

Tsz Wo (Nicholas), SZE commented on HDFS-4103:
----------------------------------------------

{quote}
    2. If the test fails, we may then enable the message and re-run the test. 
Is there anything wrong?

What if the test only fails occasionally? In that case re-running the test with 
the logging enabled will not be helpful. This just came up recently with an 
HDFS test failure that was very difficult to debug for exactly this reason.
{quote}
First of all, such case does not seem common.  Do you agree?  Even if it 
occurs, we may first enable the log and then debug.  BTW, the logs disabled are 
not closely related the test.  That's why they are disabled.  Too many log 
messages also make the debug harder.

{quote}
The symbol's not what's important, ...
{quote}
However, you previously said "There's a few "System.out.println("XXX ...")" 
left throughout the patch. ..."   Your comments seem not consistent with each 
other.

{quote}
I found that method difficult to follow, ...
{quote}
There are always some people who may find some code difficult.  It depends on 
one's knowledge and skill.  I don't think we have to make the code easy to 
everyone.  Again, we are not teaching Java or try to educate anyone.

{quote}
I consider unit tests to be very important pieces of code.
{quote}
I consider the correctness of the unit tests important but the style of tests 
is not as important as the correctness.  I would rather spend our time and 
resource on the main code and the correctness of the tests but not the style of 
the tests.  I think it is unwise to spend much time and resource on the style 
of unit tests.  No?

{quote}
It was added by this patch, starting on line 328...
{quote}
You are right.  However, it is also only related to the style of unit tests.  I 
may not fix it for the reason above.

{quote}
Just because a test is disabled doesn't mean the code shouldn't be improved.
{quote}
Since it is disabled, let's improve it when we enable it later on.

{quote}
It's true those calls were mostly in tests, but the point still remains.
{quote}
Same as before, this is also only related to the style of unit tests.  I may 
not fix it.

{quote}
... They're certainly not INode-specific, and they're already being (ab)used in 
other classes. ...
{quote}
They are currently inode-specific.

{quote}
Mostly because it makes it impossible to test the class in isolation, since one 
cannot instantiate a non-static inner class without also instantiating the 
outer class. Also because it makes it more difficult to keep track of what's in 
scope. In general if there's not a really good reason to have an inner class 
non-static, I think it's better to make it static.
{quote}
I don't see such problems and I think non-static inner classes are very useful. 
 If you comment is valid, all methods should be static since the non-static 
methods also require creating objects.

                
> Support O(1) snapshot creation
> ------------------------------
>
>                 Key: HDFS-4103
>                 URL: https://issues.apache.org/jira/browse/HDFS-4103
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: namenode
>    Affects Versions: Snapshot (HDFS-2802)
>            Reporter: Tsz Wo (Nicholas), SZE
>            Assignee: Tsz Wo (Nicholas), SZE
>             Fix For: Snapshot (HDFS-2802)
>
>         Attachments: h4103_20121129.patch, h4103_20121202b.patch, 
> h4103_20121202.patch, h4103_20121209b.patch, h4103_20121209.patch, 
> h4103_20121210b.patch, h4103_20121210.patch, h4103_20121211.patch, 
> h4103_20121212b.patch, h4103_20121212.patch, h4103_20121213.patch, 
> h4103_20121215b.patch, h4103_20121215.patch, h4103_20121216.patch, 
> h4103_20121217b.patch, h4103_20121217.patch, h4103_20121218.patch, 
> h4103_20121219.patch, h4103_20121220.patch
>
>
> In our first snapshot implementation, snapshot creation runs in O(N) and 
> occupies O(N) memory space, where N = # files + # directories + # symlinks in 
> the snapshot.  The advantages of the implementation are that there is no 
> additional cost for the modifications after snapshots are created, and it 
> leads to a simple implementation.
> In this JIRA, we optimize snapshot creation to O(1) although it introduces 
> additional cost in the modifications after snapshots are created.  Note that 
> the INode is given as an assumption, otherwise, there is a non-constant cost 
> to find the INode.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to