[jira] [Updated] (HDFS-7677) DistributedFileSystem#truncate should resolve symlinks

2015-01-26 Thread Yi Liu (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7677?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yi Liu updated HDFS-7677:
-
Attachment: HDFS-7677.002.patch

Thanks [~shv]! Update the patch to address comments.

> DistributedFileSystem#truncate should resolve symlinks
> --
>
> Key: HDFS-7677
> URL: https://issues.apache.org/jira/browse/HDFS-7677
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode, namenode
>Reporter: Yi Liu
>Assignee: Yi Liu
> Attachments: HDFS-7677.001.patch, HDFS-7677.002.patch
>
>
> We should resolve the symlinks in DistributedFileSystem#truncate as we do for 
> {{create}}, {{open}}, {{append}} and so on, I don't see any reason not 
> support it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7353) Raw Erasure Coder API for concrete encoding and decoding

2015-01-26 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-7353:
-

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12694726/HDFS-7353-v6.patch
  against trunk revision 6f9fe76.

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:red}-1 tests included{color}.  The patch doesn't appear to include 
any new or modified tests.
Please justify why no new tests are needed for this 
patch.
Also please list what manual steps were performed to 
verify this patch.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 javadoc{color}.  There were no new javadoc warning messages.

{color:green}+1 eclipse:eclipse{color}.  The patch built with 
eclipse:eclipse.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 2.0.3) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:red}-1 core tests{color}.  The patch failed these unit tests in 
hadoop-common-project/hadoop-common:

  
org.apache.hadoop.security.token.delegation.web.TestWebDelegationToken

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/9340//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/9340//console

This message is automatically generated.

> Raw Erasure Coder API for concrete encoding and decoding
> 
>
> Key: HDFS-7353
> URL: https://issues.apache.org/jira/browse/HDFS-7353
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Kai Zheng
>Assignee: Kai Zheng
> Fix For: HDFS-EC
>
> Attachments: HDFS-7353-v1.patch, HDFS-7353-v2.patch, 
> HDFS-7353-v3.patch, HDFS-7353-v4.patch, HDFS-7353-v5.patch, HDFS-7353-v6.patch
>
>
> This is to abstract and define raw erasure coder API across different codes 
> algorithms like RS, XOR and etc. Such API can be implemented by utilizing 
> various library support, such as Intel ISA library and Jerasure library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7677) DistributedFileSystem#truncate should resolve symlinks

2015-01-26 Thread Konstantin Shvachko (JIRA)

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

Konstantin Shvachko commented on HDFS-7677:
---

Looks good. Few minor nits on the test:
# Could you move {{testTruncate4Symlink()}} just before {{writeContents()}}. It 
is positioned now between two {{testSnapshotWithAppendTruncate()}} mehods, 
which should logically be together.
# Looks like you truncate on the block boundary, so
{{if(!isReady) { ...}}
can be replaced with
{{assertTrue("Recovery is not expected.", isReady);}}
# Replacing {{AppendTestUtil.checkFullFile()}} with {{checkFullFile()}} would 
save a few bytes of code.

> DistributedFileSystem#truncate should resolve symlinks
> --
>
> Key: HDFS-7677
> URL: https://issues.apache.org/jira/browse/HDFS-7677
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode, namenode
>Reporter: Yi Liu
>Assignee: Yi Liu
> Attachments: HDFS-7677.001.patch
>
>
> We should resolve the symlinks in DistributedFileSystem#truncate as we do for 
> {{create}}, {{open}}, {{append}} and so on, I don't see any reason not 
> support it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7353) Raw Erasure Coder API for concrete encoding and decoding

2015-01-26 Thread Kai Zheng (JIRA)

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

Kai Zheng commented on HDFS-7353:
-

bq. numDataUnits probably sounds a little better.
OK, let me wait another chance to update the patch one more time to use it. I 
didn't notice your comment when uploading the revision.

> Raw Erasure Coder API for concrete encoding and decoding
> 
>
> Key: HDFS-7353
> URL: https://issues.apache.org/jira/browse/HDFS-7353
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Kai Zheng
>Assignee: Kai Zheng
> Fix For: HDFS-EC
>
> Attachments: HDFS-7353-v1.patch, HDFS-7353-v2.patch, 
> HDFS-7353-v3.patch, HDFS-7353-v4.patch, HDFS-7353-v5.patch, HDFS-7353-v6.patch
>
>
> This is to abstract and define raw erasure coder API across different codes 
> algorithms like RS, XOR and etc. Such API can be implemented by utilizing 
> various library support, such as Intel ISA library and Jerasure library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7584) Enable Quota Support for Storage Types

2015-01-26 Thread Xiaoyu Yao (JIRA)

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

Xiaoyu Yao commented on HDFS-7584:
--

Thanks Arpit again for the feedback. I've fixed your comments 1,2,5. 

bq. Just an observation, and you don't really need to fix it. I realize you are 
trying to avoid a new RPC call by modifying the existing 
ClientProtocol.setQuota call. But it does create a confusing difference between 
that and DFSClient.setQuota which has two overloads and the matching overload 
of DFSClient.setQuota behaves differently (throws exception on null). Perhaps 
it is better to add a new ClientProtocol.setQuota RPC call. Either is fine 
though.

The decision to reuse existing setQuota RPC call compatibly instead of adding a 
new one is based on the feedbacks from design review. The API that throws 
exception on null storage type is the new API DFSClient#setQuotaByStorageType 
with a different signature.  We keep the original DFSClient#setQuota(dsQuota, 
nsQuota) as-is so that it won't break existing clients. With a single setQuota 
RPC message, I think it should be fine. 


bq. Do we need the new config key DFS_QUOTA_BY_STORAGETYPE_ENABLED_KEY? The 
administrator can already choose to avoid configuring per-type quotas so I am 
not sure the new configuration is useful.

Adding the key allow us to completely disable the feature. Without the key, the 
admin can accidentally configure and enable this feature. I can remove it if 
this is not needed.  




> Enable Quota Support for Storage Types
> --
>
> Key: HDFS-7584
> URL: https://issues.apache.org/jira/browse/HDFS-7584
> Project: Hadoop HDFS
>  Issue Type: New Feature
>  Components: datanode, namenode
>Reporter: Xiaoyu Yao
>Assignee: Xiaoyu Yao
> Attachments: HDFS-7584 Quota by Storage Type - 01202015.pdf, 
> HDFS-7584.0.patch, HDFS-7584.1.patch, HDFS-7584.2.patch, HDFS-7584.3.patch, 
> HDFS-7584.4.patch, editsStored
>
>
> Phase II of the Heterogeneous storage features have completed by HDFS-6584. 
> This JIRA is opened to enable Quota support of different storage types in 
> terms of storage space usage. This is more important for certain storage 
> types such as SSD as it is precious and more performant. 
> As described in the design doc of HDFS-5682, we plan to add new 
> quotaByStorageType command and new name node RPC protocol for it. The quota 
> by storage type feature is applied to HDFS directory level similar to 
> traditional HDFS space quota. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-7353) Raw Erasure Coder API for concrete encoding and decoding

2015-01-26 Thread Kai Zheng (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7353?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kai Zheng updated HDFS-7353:

Attachment: HDFS-7353-v6.patch

Hope this resolves the Javadoc warnings finally.

> Raw Erasure Coder API for concrete encoding and decoding
> 
>
> Key: HDFS-7353
> URL: https://issues.apache.org/jira/browse/HDFS-7353
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Kai Zheng
>Assignee: Kai Zheng
> Fix For: HDFS-EC
>
> Attachments: HDFS-7353-v1.patch, HDFS-7353-v2.patch, 
> HDFS-7353-v3.patch, HDFS-7353-v4.patch, HDFS-7353-v5.patch, HDFS-7353-v6.patch
>
>
> This is to abstract and define raw erasure coder API across different codes 
> algorithms like RS, XOR and etc. Such API can be implemented by utilizing 
> various library support, such as Intel ISA library and Jerasure library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7353) Raw Erasure Coder API for concrete encoding and decoding

2015-01-26 Thread Zhe Zhang (JIRA)

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

Zhe Zhang commented on HDFS-7353:
-

bq. how about numDataUnits or dataUnitsCount
Both sound good to me. {{numDataUnits}} probably sounds a little better.

> Raw Erasure Coder API for concrete encoding and decoding
> 
>
> Key: HDFS-7353
> URL: https://issues.apache.org/jira/browse/HDFS-7353
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Kai Zheng
>Assignee: Kai Zheng
> Fix For: HDFS-EC
>
> Attachments: HDFS-7353-v1.patch, HDFS-7353-v2.patch, 
> HDFS-7353-v3.patch, HDFS-7353-v4.patch, HDFS-7353-v5.patch, HDFS-7353-v6.patch
>
>
> This is to abstract and define raw erasure coder API across different codes 
> algorithms like RS, XOR and etc. Such API can be implemented by utilizing 
> various library support, such as Intel ISA library and Jerasure library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7339) Allocating and persisting block groups in NameNode

2015-01-26 Thread Zhe Zhang (JIRA)

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

Zhe Zhang commented on HDFS-7339:
-

bq. Back to this jira, maybe we should consider providing a relative simple 
implementation first and do optimization in a separate jira. Either only using 
blocksMap or allocating an extra blockgroupsMap looks fine to me. Maybe we 
should also schedule an offline discussion sometime this week.

I agree we should start with a simpler implementation. An in-person meeting is 
a good idea. I'm free Tuesday (except for 11~12) and Wednesday. Let me know 
what time works best for you and I can stop by.

> Allocating and persisting block groups in NameNode
> --
>
> Key: HDFS-7339
> URL: https://issues.apache.org/jira/browse/HDFS-7339
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Zhe Zhang
>Assignee: Zhe Zhang
> Attachments: HDFS-7339-001.patch, HDFS-7339-002.patch, 
> HDFS-7339-003.patch, HDFS-7339-004.patch, HDFS-7339-005.patch, 
> HDFS-7339-006.patch, Meta-striping.jpg, NN-stripping.jpg
>
>
> All erasure codec operations center around the concept of _block group_; they 
> are formed in initial encoding and looked up in recoveries and conversions. A 
> lightweight class {{BlockGroup}} is created to record the original and parity 
> blocks in a coding group, as well as a pointer to the codec schema (pluggable 
> codec schemas will be supported in HDFS-7337). With the striping layout, the 
> HDFS client needs to operate on all blocks in a {{BlockGroup}} concurrently. 
> Therefore we propose to extend a file’s inode to switch between _contiguous_ 
> and _striping_ modes, with the current mode recorded in a binary flag. An 
> array of BlockGroups (or BlockGroup IDs) is added, which remains empty for 
> “traditional” HDFS files with contiguous block layout.
> The NameNode creates and maintains {{BlockGroup}} instances through the new 
> {{ECManager}} component; the attached figure has an illustration of the 
> architecture. As a simple example, when a {_Striping+EC_} file is created and 
> written to, it will serve requests from the client to allocate new 
> {{BlockGroups}} and store them under the {{INodeFile}}. In the current phase, 
> {{BlockGroups}} are allocated both in initial online encoding and in the 
> conversion from replication to EC. {{ECManager}} also facilitates the lookup 
> of {{BlockGroup}} information for block recovery work.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7353) Raw Erasure Coder API for concrete encoding and decoding

2015-01-26 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-7353:
-

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12694709/HDFS-7353-v5.patch
  against trunk revision 6f9fe76.

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:red}-1 tests included{color}.  The patch doesn't appear to include 
any new or modified tests.
Please justify why no new tests are needed for this 
patch.
Also please list what manual steps were performed to 
verify this patch.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:red}-1 javadoc{color}.  The javadoc tool appears to have generated 3 
warning messages.
See 
https://builds.apache.org/job/PreCommit-HDFS-Build/9337//artifact/patchprocess/diffJavadocWarnings.txt
 for details.

{color:green}+1 eclipse:eclipse{color}.  The patch built with 
eclipse:eclipse.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 2.0.3) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:green}+1 core tests{color}.  The patch passed unit tests in 
hadoop-common-project/hadoop-common.

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/9337//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/9337//console

This message is automatically generated.

> Raw Erasure Coder API for concrete encoding and decoding
> 
>
> Key: HDFS-7353
> URL: https://issues.apache.org/jira/browse/HDFS-7353
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Kai Zheng
>Assignee: Kai Zheng
> Fix For: HDFS-EC
>
> Attachments: HDFS-7353-v1.patch, HDFS-7353-v2.patch, 
> HDFS-7353-v3.patch, HDFS-7353-v4.patch, HDFS-7353-v5.patch
>
>
> This is to abstract and define raw erasure coder API across different codes 
> algorithms like RS, XOR and etc. Such API can be implemented by utilizing 
> various library support, such as Intel ISA library and Jerasure library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7584) Enable Quota Support for Storage Types

2015-01-26 Thread Xiaoyu Yao (JIRA)

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

Xiaoyu Yao commented on HDFS-7584:
--

Thanks Arpit for the review and feedback. I will provide a new patch with the 
update soon. 

bq. I can think of at least one natural split:
Part 1 is the the API, protocol and tool changes.
Part 2 is the NameNode implementation.

That sounds good to me. I will try splitting it up after finishing the first 
round of review. 

bq. QuotaCounts: It has four telescoping constructors, all private. It is a 
little confusing. Can we simplify the constructors? e.g. the default 
constructor can be replaced with initializers.

Agree. That's something I plan to refactor as well. I tried the build pattern, 
which could help to main this class when we need add more counters in future 
that need to be initialized.  

bq. I did not understand the todo in INode.java:464. If it is something that 
would be broken and is not too hard to fix perhaps we should include it in the 
same checkin? This is perhaps another argument for splitting into two patches 
at a higher level.

This is for "hadoop fs -count -q" command where the majority of the change will 
not be under hadoop-hdfs-project. It also needs to move the StorageType.java 
from hadoop-hdfs to hadoop-common, which I prefer to change after the initial 
check in.

bq. QuotaCounts: typeSpaces and typeCounts are used interchangeably. We should 
probably name them consistently.
The parameter in the methods use typeSpaces to be consistent with the other 
parameters (namespace, diskspace). The class member variable is named 
typeCounts. 

bq. Nitpick, optional: EnumCounters.allLessOrEqual and .anyGreatOrEqual - can 
we use foreach loop?
Agree that foreach will make it syntactically neat. 


> Enable Quota Support for Storage Types
> --
>
> Key: HDFS-7584
> URL: https://issues.apache.org/jira/browse/HDFS-7584
> Project: Hadoop HDFS
>  Issue Type: New Feature
>  Components: datanode, namenode
>Reporter: Xiaoyu Yao
>Assignee: Xiaoyu Yao
> Attachments: HDFS-7584 Quota by Storage Type - 01202015.pdf, 
> HDFS-7584.0.patch, HDFS-7584.1.patch, HDFS-7584.2.patch, HDFS-7584.3.patch, 
> HDFS-7584.4.patch, editsStored
>
>
> Phase II of the Heterogeneous storage features have completed by HDFS-6584. 
> This JIRA is opened to enable Quota support of different storage types in 
> terms of storage space usage. This is more important for certain storage 
> types such as SSD as it is precious and more performant. 
> As described in the design doc of HDFS-5682, we plan to add new 
> quotaByStorageType command and new name node RPC protocol for it. The quota 
> by storage type feature is applied to HDFS directory level similar to 
> traditional HDFS space quota. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-5796) The file system browser in the namenode UI requires SPNEGO.

2015-01-26 Thread Arun Suresh (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-5796?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Arun Suresh updated HDFS-5796:
--
Attachment: HDFS-5796.3.patch

> The file system browser in the namenode UI requires SPNEGO.
> ---
>
> Key: HDFS-5796
> URL: https://issues.apache.org/jira/browse/HDFS-5796
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.5.0
>Reporter: Kihwal Lee
>Assignee: Arun Suresh
> Attachments: HDFS-5796.1.patch, HDFS-5796.1.patch, HDFS-5796.2.patch, 
> HDFS-5796.3.patch, HDFS-5796.3.patch
>
>
> After HDFS-5382, the browser makes webhdfs REST calls directly, requiring 
> SPNEGO to work between user's browser and namenode.  This won't work if the 
> cluster's security infrastructure is isolated from the regular network.  
> Moreover, SPNEGO is not supposed to be required for user-facing web pages.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-7353) Raw Erasure Coder API for concrete encoding and decoding

2015-01-26 Thread Kai Zheng (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7353?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kai Zheng updated HDFS-7353:

Attachment: HDFS-7353-v5.patch

Updated the patch according to the above review comments.

> Raw Erasure Coder API for concrete encoding and decoding
> 
>
> Key: HDFS-7353
> URL: https://issues.apache.org/jira/browse/HDFS-7353
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Kai Zheng
>Assignee: Kai Zheng
> Fix For: HDFS-EC
>
> Attachments: HDFS-7353-v1.patch, HDFS-7353-v2.patch, 
> HDFS-7353-v3.patch, HDFS-7353-v4.patch, HDFS-7353-v5.patch
>
>
> This is to abstract and define raw erasure coder API across different codes 
> algorithms like RS, XOR and etc. Such API can be implemented by utilizing 
> various library support, such as Intel ISA library and Jerasure library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-7630) TestConnCache hardcode block size without considering native OS

2015-01-26 Thread sam liu (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7630?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

sam liu updated HDFS-7630:
--
Attachment: HDFS-7630.002.patch

Combined the patches of HDFS-7624 through HDFS-7630 into 
one(HDFS-7630.002.patch). 

> TestConnCache hardcode block size without considering native OS
> ---
>
> Key: HDFS-7630
> URL: https://issues.apache.org/jira/browse/HDFS-7630
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: test
>Reporter: sam liu
>Assignee: sam liu
> Attachments: HDFS-7630.001.patch, HDFS-7630.002.patch
>
>
> TestConnCache hardcode block size with 'BLOCK_SIZE = 4096', however it's 
> incorrect on some platforms. For example, on power platform, the correct 
> value is 65536.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-49) MiniDFSCluster.stopDataNode will always shut down a node in the cluster if a matching name is not found

2015-01-26 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-49:
---

{color:green}+1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12667794/HDFS-49-002.patch
  against trunk revision 6f9fe76.

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:green}+1 tests included{color}.  The patch appears to include 1 new 
or modified test files.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 javadoc{color}.  There were no new javadoc warning messages.

{color:green}+1 eclipse:eclipse{color}.  The patch built with 
eclipse:eclipse.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 2.0.3) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:green}+1 core tests{color}.  The patch passed unit tests in 
hadoop-hdfs-project/hadoop-hdfs.

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/9335//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/9335//console

This message is automatically generated.

> MiniDFSCluster.stopDataNode will always shut down a node in the cluster if a 
> matching name is not found
> ---
>
> Key: HDFS-49
> URL: https://issues.apache.org/jira/browse/HDFS-49
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 0.20.204.0, 0.20.205.0, 1.1.0
>Reporter: Steve Loughran
>Assignee: Steve Loughran
>Priority: Minor
>  Labels: codereview, newbie
> Attachments: HDFS-49-002.patch, hdfs-49.patch
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> The stopDataNode method will shut down the last node in the list of nodes, if 
> one matching a specific name is not found
> This is possibly not what was intended. Better to return false or fail in 
> some other manner if the named node was not located
>  synchronized boolean stopDataNode(String name) {
> int i;
> for (i = 0; i < dataNodes.size(); i++) {
>   DataNode dn = dataNodes.get(i).datanode;
>   if (dn.dnRegistration.getName().equals(name)) {
> break;
>   }
> }
> return stopDataNode(i);
>   }



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-3689) Add support for variable length block

2015-01-26 Thread Jing Zhao (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-3689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jing Zhao updated HDFS-3689:

Attachment: HDFS-3689.010.patch

Thanks Nicholas! Update the patch to address the comments.

bq. The if-condition below should

This if-condition has actually been covered by {{verifyQuota}}. Thus I only 
update the comment here.

> Add support for variable length block
> -
>
> Key: HDFS-3689
> URL: https://issues.apache.org/jira/browse/HDFS-3689
> Project: Hadoop HDFS
>  Issue Type: New Feature
>  Components: datanode, hdfs-client, namenode
>Affects Versions: 3.0.0
>Reporter: Suresh Srinivas
>Assignee: Jing Zhao
> Attachments: HDFS-3689.000.patch, HDFS-3689.001.patch, 
> HDFS-3689.002.patch, HDFS-3689.003.patch, HDFS-3689.003.patch, 
> HDFS-3689.004.patch, HDFS-3689.005.patch, HDFS-3689.006.patch, 
> HDFS-3689.007.patch, HDFS-3689.008.patch, HDFS-3689.008.patch, 
> HDFS-3689.009.patch, HDFS-3689.009.patch, HDFS-3689.010.patch, editsStored
>
>
> Currently HDFS supports fixed length blocks. Supporting variable length block 
> will allow new use cases and features to be built on top of HDFS. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7353) Raw Erasure Coder API for concrete encoding and decoding

2015-01-26 Thread Kai Zheng (JIRA)

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

Kai Zheng commented on HDFS-7353:
-

Hi [~zhz] or [~szetszwo], 
1. I'm sorry to be about naming again, but regarding better name for dataSize, 
how about numDataUnits or dataUnitsCount?
2. About why we need the 3rd version encode()/decode(), it is because in above 
layer in ErasureCoder, ECChunks are extracted from blocks and then they're 
passed down here for the encoding/decoding. How to get bytes or ByteBuffer from 
ECChunk, it depends and therefore better have the logic centrally here. 
Generally, in pure Java implementation, bytes are allocated in heap and used; 
in ISA-L, better to obtain ByteBuffer from off-heap for performance 
consideration.


> Raw Erasure Coder API for concrete encoding and decoding
> 
>
> Key: HDFS-7353
> URL: https://issues.apache.org/jira/browse/HDFS-7353
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Kai Zheng
>Assignee: Kai Zheng
> Fix For: HDFS-EC
>
> Attachments: HDFS-7353-v1.patch, HDFS-7353-v2.patch, 
> HDFS-7353-v3.patch, HDFS-7353-v4.patch
>
>
> This is to abstract and define raw erasure coder API across different codes 
> algorithms like RS, XOR and etc. Such API can be implemented by utilizing 
> various library support, such as Intel ISA library and Jerasure library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-7018) Implement C interface for libhdfs3

2015-01-26 Thread Zhanwei Wang (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7018?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhanwei Wang updated HDFS-7018:
---
Attachment: HDFS-7018-pnative.004.patch

> Implement C interface for libhdfs3
> --
>
> Key: HDFS-7018
> URL: https://issues.apache.org/jira/browse/HDFS-7018
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs-client
>Reporter: Zhanwei Wang
>Assignee: Zhanwei Wang
> Attachments: HDFS-7018-pnative.002.patch, 
> HDFS-7018-pnative.003.patch, HDFS-7018-pnative.004.patch, HDFS-7018.patch
>
>
> Implement C interface for libhdfs3



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-7018) Implement C interface for libhdfs3

2015-01-26 Thread Zhanwei Wang (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7018?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhanwei Wang updated HDFS-7018:
---
Attachment: (was: HDFS-7018-pnative.004.patch)

> Implement C interface for libhdfs3
> --
>
> Key: HDFS-7018
> URL: https://issues.apache.org/jira/browse/HDFS-7018
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs-client
>Reporter: Zhanwei Wang
>Assignee: Zhanwei Wang
> Attachments: HDFS-7018-pnative.002.patch, 
> HDFS-7018-pnative.003.patch, HDFS-7018.patch
>
>
> Implement C interface for libhdfs3



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-7018) Implement C interface for libhdfs3

2015-01-26 Thread Zhanwei Wang (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7018?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhanwei Wang updated HDFS-7018:
---
Attachment: (was: HDFS-7018-pnative.004.patch)

> Implement C interface for libhdfs3
> --
>
> Key: HDFS-7018
> URL: https://issues.apache.org/jira/browse/HDFS-7018
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs-client
>Reporter: Zhanwei Wang
>Assignee: Zhanwei Wang
> Attachments: HDFS-7018-pnative.002.patch, 
> HDFS-7018-pnative.003.patch, HDFS-7018-pnative.004.patch, HDFS-7018.patch
>
>
> Implement C interface for libhdfs3



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7018) Implement C interface for libhdfs3

2015-01-26 Thread Zhanwei Wang (JIRA)

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

Zhanwei Wang commented on HDFS-7018:


Hi [~cmccabe]

In the new patch,
1) simplify the exception handling to only one catch block

{code}
catch (...) {
HandleException(current_exception());
}
{code}

2) remove {{PARAMETER_ASSERT}}

3) simplify {{struct hdfsFile_internal}} as you suggested.

4) remove some functions which are not supported in libhdfs. Let's discuss and 
add them in other jira.

As you suggested, searching CLASSPATH for XML configure files will be done in 
another jira, so I keep the current implementation. 



> Implement C interface for libhdfs3
> --
>
> Key: HDFS-7018
> URL: https://issues.apache.org/jira/browse/HDFS-7018
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs-client
>Reporter: Zhanwei Wang
>Assignee: Zhanwei Wang
> Attachments: HDFS-7018-pnative.002.patch, 
> HDFS-7018-pnative.003.patch, HDFS-7018-pnative.004.patch, HDFS-7018.patch
>
>
> Implement C interface for libhdfs3



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-7018) Implement C interface for libhdfs3

2015-01-26 Thread Zhanwei Wang (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7018?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhanwei Wang updated HDFS-7018:
---
Attachment: HDFS-7018-pnative.004.patch

> Implement C interface for libhdfs3
> --
>
> Key: HDFS-7018
> URL: https://issues.apache.org/jira/browse/HDFS-7018
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs-client
>Reporter: Zhanwei Wang
>Assignee: Zhanwei Wang
> Attachments: HDFS-7018-pnative.002.patch, 
> HDFS-7018-pnative.003.patch, HDFS-7018-pnative.004.patch, HDFS-7018.patch
>
>
> Implement C interface for libhdfs3



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-7018) Implement C interface for libhdfs3

2015-01-26 Thread Zhanwei Wang (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7018?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhanwei Wang updated HDFS-7018:
---
Attachment: HDFS-7018-pnative.004.patch

> Implement C interface for libhdfs3
> --
>
> Key: HDFS-7018
> URL: https://issues.apache.org/jira/browse/HDFS-7018
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs-client
>Reporter: Zhanwei Wang
>Assignee: Zhanwei Wang
> Attachments: HDFS-7018-pnative.002.patch, 
> HDFS-7018-pnative.003.patch, HDFS-7018-pnative.004.patch, HDFS-7018.patch
>
>
> Implement C interface for libhdfs3



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-5796) The file system browser in the namenode UI requires SPNEGO.

2015-01-26 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-5796:
-

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12694648/HDFS-5796.3.patch
  against trunk revision 1f2b695.

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:green}+1 tests included{color}.  The patch appears to include 1 new 
or modified test files.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 javadoc{color}.  There were no new javadoc warning messages.

{color:green}+1 eclipse:eclipse{color}.  The patch built with 
eclipse:eclipse.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 2.0.3) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:red}-1 core tests{color}.  The patch failed these unit tests in 
hadoop-common-project/hadoop-auth hadoop-common-project/hadoop-common 
hadoop-hdfs-project/hadoop-hdfs:

  org.apache.hadoop.ipc.TestRPCCallBenchmark

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/9333//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/9333//console

This message is automatically generated.

> The file system browser in the namenode UI requires SPNEGO.
> ---
>
> Key: HDFS-5796
> URL: https://issues.apache.org/jira/browse/HDFS-5796
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.5.0
>Reporter: Kihwal Lee
>Assignee: Arun Suresh
> Attachments: HDFS-5796.1.patch, HDFS-5796.1.patch, HDFS-5796.2.patch, 
> HDFS-5796.3.patch
>
>
> After HDFS-5382, the browser makes webhdfs REST calls directly, requiring 
> SPNEGO to work between user's browser and namenode.  This won't work if the 
> cluster's security infrastructure is isolated from the regular network.  
> Moreover, SPNEGO is not supposed to be required for user-facing web pages.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7285) Erasure Coding Support inside HDFS

2015-01-26 Thread Kai Zheng (JIRA)

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

Kai Zheng commented on HDFS-7285:
-

The rational to use "erasurecoding" or "erasurecode" is simple, if no 
abbreviation sounds comfortable, then use the full words.

> Erasure Coding Support inside HDFS
> --
>
> Key: HDFS-7285
> URL: https://issues.apache.org/jira/browse/HDFS-7285
> Project: Hadoop HDFS
>  Issue Type: New Feature
>Reporter: Weihua Jiang
>Assignee: Zhe Zhang
> Attachments: ECAnalyzer.py, ECParser.py, 
> HDFSErasureCodingDesign-20141028.pdf, HDFSErasureCodingDesign-20141217.pdf, 
> fsimage-analysis-20150105.pdf
>
>
> Erasure Coding (EC) can greatly reduce the storage overhead without sacrifice 
> of data reliability, comparing to the existing HDFS 3-replica approach. For 
> example, if we use a 10+4 Reed Solomon coding, we can allow loss of 4 blocks, 
> with storage overhead only being 40%. This makes EC a quite attractive 
> alternative for big data storage, particularly for cold data. 
> Facebook had a related open source project called HDFS-RAID. It used to be 
> one of the contribute packages in HDFS but had been removed since Hadoop 2.0 
> for maintain reason. The drawbacks are: 1) it is on top of HDFS and depends 
> on MapReduce to do encoding and decoding tasks; 2) it can only be used for 
> cold files that are intended not to be appended anymore; 3) the pure Java EC 
> coding implementation is extremely slow in practical use. Due to these, it 
> might not be a good idea to just bring HDFS-RAID back.
> We (Intel and Cloudera) are working on a design to build EC into HDFS that 
> gets rid of any external dependencies, makes it self-contained and 
> independently maintained. This design lays the EC feature on the storage type 
> support and considers compatible with existing HDFS features like caching, 
> snapshot, encryption, high availability and etc. This design will also 
> support different EC coding schemes, implementations and policies for 
> different deployment scenarios. By utilizing advanced libraries (e.g. Intel 
> ISA-L library), an implementation can greatly improve the performance of EC 
> encoding/decoding and makes the EC solution even more attractive. We will 
> post the design document soon. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7285) Erasure Coding Support inside HDFS

2015-01-26 Thread Kai Zheng (JIRA)

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

Kai Zheng commented on HDFS-7285:
-

It's good to use 'erasure_code' for a c library directory name, but not so 
elegant for a Java package name. How about "erasurecoding" in full.

> Erasure Coding Support inside HDFS
> --
>
> Key: HDFS-7285
> URL: https://issues.apache.org/jira/browse/HDFS-7285
> Project: Hadoop HDFS
>  Issue Type: New Feature
>Reporter: Weihua Jiang
>Assignee: Zhe Zhang
> Attachments: ECAnalyzer.py, ECParser.py, 
> HDFSErasureCodingDesign-20141028.pdf, HDFSErasureCodingDesign-20141217.pdf, 
> fsimage-analysis-20150105.pdf
>
>
> Erasure Coding (EC) can greatly reduce the storage overhead without sacrifice 
> of data reliability, comparing to the existing HDFS 3-replica approach. For 
> example, if we use a 10+4 Reed Solomon coding, we can allow loss of 4 blocks, 
> with storage overhead only being 40%. This makes EC a quite attractive 
> alternative for big data storage, particularly for cold data. 
> Facebook had a related open source project called HDFS-RAID. It used to be 
> one of the contribute packages in HDFS but had been removed since Hadoop 2.0 
> for maintain reason. The drawbacks are: 1) it is on top of HDFS and depends 
> on MapReduce to do encoding and decoding tasks; 2) it can only be used for 
> cold files that are intended not to be appended anymore; 3) the pure Java EC 
> coding implementation is extremely slow in practical use. Due to these, it 
> might not be a good idea to just bring HDFS-RAID back.
> We (Intel and Cloudera) are working on a design to build EC into HDFS that 
> gets rid of any external dependencies, makes it self-contained and 
> independently maintained. This design lays the EC feature on the storage type 
> support and considers compatible with existing HDFS features like caching, 
> snapshot, encryption, high availability and etc. This design will also 
> support different EC coding schemes, implementations and policies for 
> different deployment scenarios. By utilizing advanced libraries (e.g. Intel 
> ISA-L library), an implementation can greatly improve the performance of EC 
> encoding/decoding and makes the EC solution even more attractive. We will 
> post the design document soon. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7611) deleteSnapshot and delete of a file can leave orphaned blocks in the blocksMap on NameNode restart.

2015-01-26 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-7611:
-

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12694651/HDFS-7611.001.patch
  against trunk revision 6f9fe76.

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:green}+1 tests included{color}.  The patch appears to include 1 new 
or modified test files.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 javadoc{color}.  There were no new javadoc warning messages.

{color:green}+1 eclipse:eclipse{color}.  The patch built with 
eclipse:eclipse.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 2.0.3) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:red}-1 core tests{color}.  The patch failed these unit tests in 
hadoop-hdfs-project/hadoop-hdfs:

  
org.apache.hadoop.hdfs.server.namenode.snapshot.TestOpenFilesWithSnapshot
  org.apache.hadoop.hdfs.server.datanode.TestBlockScanner

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/9334//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/9334//console

This message is automatically generated.

> deleteSnapshot and delete of a file can leave orphaned blocks in the 
> blocksMap on NameNode restart.
> ---
>
> Key: HDFS-7611
> URL: https://issues.apache.org/jira/browse/HDFS-7611
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: namenode
>Affects Versions: 2.6.0
>Reporter: Konstantin Shvachko
>Assignee: Byron Wong
>Priority: Critical
> Attachments: HDFS-7611.000.patch, HDFS-7611.001.patch, 
> blocksNotDeletedTest.patch, testTruncateEditLogLoad.log
>
>
> If quotas are enabled a combination of operations *deleteSnapshot* and 
> *delete* of a file can leave  orphaned  blocks in the blocksMap on NameNode 
> restart. They are counted as missing on the NameNode, and can prevent 
> NameNode from coming out of safeMode and could cause memory leak during 
> startup.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (HDFS-7584) Enable Quota Support for Storage Types

2015-01-26 Thread Arpit Agarwal (JIRA)

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

Arpit Agarwal edited comment on HDFS-7584 at 1/27/15 2:50 AM:
--

[~xyao], considering the size of the patch do you think we should split it into 
at least two smaller patches. I can think of at least one natural split:
# Part 1 is the the API,  protocol and tool changes.
# Part 2 is the NameNode implementation.

In any case I started looking at the NN changes. Some initial feedback below, 
mostly nitpicks. I will look at the rest later this week:

# I did not understand the todo in INode.java:464. If it is something that 
would be broken and is not too hard to fix perhaps we should include it in the 
same checkin? This is perhaps another argument for splitting into two patches 
at a higher level.
# QuotaCounts: It has four telescoping constructors, all private. It is a 
little confusing. Can we simplify the constructors? e.g. the default 
constructor can be replaced with initializers.
# QuotaCounts: {{typeSpaces}} and {{typeCounts}} are used interchangeably. We 
should probably name them consistently.
# NameNodeLayoutVersion: description of the new layout is too terse, probably 
unintentional.
# Could you please add a short comment for {{ONE_NAMESPACE}}? I realize it was 
even more confusing before, thanks for adding the static initializer.
# {{INode.getQuotaCounts}} - don't need local variable {{qc}}.
# Nitpick, optional: {{EnumCounters.allLessOrEqual}} and {{.anyGreatOrEqual}} - 
can we use foreach loop?
# DFSAdmin.java: _The space quota is set onto storage type_ should be _The 
storage type specific quota is set when ..._
# Unintentional whitespace changes in Quota.java?



was (Author: arpitagarwal):
[~xyao], considering the size of the patch do you think we should split it into 
at least two smaller patches. I can think of at least one natural split:
# Part 1 is the the API,  protocol and tool changes.
# Part 2 is the NameNode implementation.

In any case I started looking at the NN changes. Some initial feedback below, I 
will look at the rest later this week:

# I did not understand the todo in INode.java:464. If it is something that 
would be broken and is not too hard to fix perhaps we should include it in the 
same checkin? This is perhaps another argument for splitting into two patches 
at a higher level.
# QuotaCounts: It has four telescoping constructors, all private. It is a 
little confusing. e.g. the default constructor can be replaced with 
initializers.
# QuotaCounts: {{typeSpaces}} and {{typeCounts}} are used interchangeably. We 
should probably name them consistently.
# NameNodeLayoutVersion: description of the new layout is too terse, probably 
unintentional.
# Could you please add a short comment for {{ONE_NAMESPACE}}? I realize it was 
even more confusing before, thanks for adding the static initializer.
# {{INode.getQuotaCounts}} - don't need local variable {{qc}}.
# Nitpick, optional: {{EnumCounters.allLessOrEqual}} and {{.anyGreatOrEqual}} - 
can we use foreach loop?
# DFSAdmin.java: _The space quota is set onto storage type_ should be _The 
storage type specific quota is set when ..._
# Unintentional whitespace changes in Quota.java?


> Enable Quota Support for Storage Types
> --
>
> Key: HDFS-7584
> URL: https://issues.apache.org/jira/browse/HDFS-7584
> Project: Hadoop HDFS
>  Issue Type: New Feature
>  Components: datanode, namenode
>Reporter: Xiaoyu Yao
>Assignee: Xiaoyu Yao
> Attachments: HDFS-7584 Quota by Storage Type - 01202015.pdf, 
> HDFS-7584.0.patch, HDFS-7584.1.patch, HDFS-7584.2.patch, HDFS-7584.3.patch, 
> HDFS-7584.4.patch, editsStored
>
>
> Phase II of the Heterogeneous storage features have completed by HDFS-6584. 
> This JIRA is opened to enable Quota support of different storage types in 
> terms of storage space usage. This is more important for certain storage 
> types such as SSD as it is precious and more performant. 
> As described in the design doc of HDFS-5682, we plan to add new 
> quotaByStorageType command and new name node RPC protocol for it. The quota 
> by storage type feature is applied to HDFS directory level similar to 
> traditional HDFS space quota. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7584) Enable Quota Support for Storage Types

2015-01-26 Thread Arpit Agarwal (JIRA)

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

Arpit Agarwal commented on HDFS-7584:
-

[~xyao], considering the size of the patch do you think we should split it into 
at least two smaller patches. I can think of at least one natural split:
# Part 1 is the the API,  protocol and tool changes.
# Part 2 is the NameNode implementation.

In any case I started looking at the NN changes. Some initial feedback below, I 
will look at the rest later this week:

# I did not understand the todo in INode.java:464. If it is something that 
would be broken and is not too hard to fix perhaps we should include it in the 
same checkin? This is perhaps another argument for splitting into two patches 
at a higher level.
# QuotaCounts: It has four telescoping constructors, all private. It is a 
little confusing. e.g. the default constructor can be replaced with 
initializers.
# QuotaCounts: {{typeSpaces}} and {{typeCounts}} are used interchangeably. We 
should probably name them consistently.
# NameNodeLayoutVersion: description of the new layout is too terse, probably 
unintentional.
# Could you please add a short comment for {{ONE_NAMESPACE}}? I realize it was 
even more confusing before, thanks for adding the static initializer.
# {{INode.getQuotaCounts}} - don't need local variable {{qc}}.
# Nitpick, optional: {{EnumCounters.allLessOrEqual}} and {{.anyGreatOrEqual}} - 
can we use foreach loop?
# DFSAdmin.java: _The space quota is set onto storage type_ should be _The 
storage type specific quota is set when ..._
# Unintentional whitespace changes in Quota.java?


> Enable Quota Support for Storage Types
> --
>
> Key: HDFS-7584
> URL: https://issues.apache.org/jira/browse/HDFS-7584
> Project: Hadoop HDFS
>  Issue Type: New Feature
>  Components: datanode, namenode
>Reporter: Xiaoyu Yao
>Assignee: Xiaoyu Yao
> Attachments: HDFS-7584 Quota by Storage Type - 01202015.pdf, 
> HDFS-7584.0.patch, HDFS-7584.1.patch, HDFS-7584.2.patch, HDFS-7584.3.patch, 
> HDFS-7584.4.patch, editsStored
>
>
> Phase II of the Heterogeneous storage features have completed by HDFS-6584. 
> This JIRA is opened to enable Quota support of different storage types in 
> terms of storage space usage. This is more important for certain storage 
> types such as SSD as it is precious and more performant. 
> As described in the design doc of HDFS-5682, we plan to add new 
> quotaByStorageType command and new name node RPC protocol for it. The quota 
> by storage type feature is applied to HDFS directory level similar to 
> traditional HDFS space quota. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7285) Erasure Coding Support inside HDFS

2015-01-26 Thread Tsz Wo Nicholas Sze (JIRA)

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

Tsz Wo Nicholas Sze commented on HDFS-7285:
---

How about io.erasure_code?  Intel ISA-L also uses erasure_code as the directory 
name and library name.

> Erasure Coding Support inside HDFS
> --
>
> Key: HDFS-7285
> URL: https://issues.apache.org/jira/browse/HDFS-7285
> Project: Hadoop HDFS
>  Issue Type: New Feature
>Reporter: Weihua Jiang
>Assignee: Zhe Zhang
> Attachments: ECAnalyzer.py, ECParser.py, 
> HDFSErasureCodingDesign-20141028.pdf, HDFSErasureCodingDesign-20141217.pdf, 
> fsimage-analysis-20150105.pdf
>
>
> Erasure Coding (EC) can greatly reduce the storage overhead without sacrifice 
> of data reliability, comparing to the existing HDFS 3-replica approach. For 
> example, if we use a 10+4 Reed Solomon coding, we can allow loss of 4 blocks, 
> with storage overhead only being 40%. This makes EC a quite attractive 
> alternative for big data storage, particularly for cold data. 
> Facebook had a related open source project called HDFS-RAID. It used to be 
> one of the contribute packages in HDFS but had been removed since Hadoop 2.0 
> for maintain reason. The drawbacks are: 1) it is on top of HDFS and depends 
> on MapReduce to do encoding and decoding tasks; 2) it can only be used for 
> cold files that are intended not to be appended anymore; 3) the pure Java EC 
> coding implementation is extremely slow in practical use. Due to these, it 
> might not be a good idea to just bring HDFS-RAID back.
> We (Intel and Cloudera) are working on a design to build EC into HDFS that 
> gets rid of any external dependencies, makes it self-contained and 
> independently maintained. This design lays the EC feature on the storage type 
> support and considers compatible with existing HDFS features like caching, 
> snapshot, encryption, high availability and etc. This design will also 
> support different EC coding schemes, implementations and policies for 
> different deployment scenarios. By utilizing advanced libraries (e.g. Intel 
> ISA-L library), an implementation can greatly improve the performance of EC 
> encoding/decoding and makes the EC solution even more attractive. We will 
> post the design document soon. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-7584) Enable Quota Support for Storage Types

2015-01-26 Thread Arpit Agarwal (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7584?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Arpit Agarwal updated HDFS-7584:

Summary: Enable Quota Support for Storage Types  (was: Enable Quota Support 
for Storage Types (SSD) )

> Enable Quota Support for Storage Types
> --
>
> Key: HDFS-7584
> URL: https://issues.apache.org/jira/browse/HDFS-7584
> Project: Hadoop HDFS
>  Issue Type: New Feature
>  Components: datanode, namenode
>Reporter: Xiaoyu Yao
>Assignee: Xiaoyu Yao
> Attachments: HDFS-7584 Quota by Storage Type - 01202015.pdf, 
> HDFS-7584.0.patch, HDFS-7584.1.patch, HDFS-7584.2.patch, HDFS-7584.3.patch, 
> HDFS-7584.4.patch, editsStored
>
>
> Phase II of the Heterogeneous storage features have completed by HDFS-6584. 
> This JIRA is opened to enable Quota support of different storage types in 
> terms of storage space usage. This is more important for certain storage 
> types such as SSD as it is precious and more performant. 
> As described in the design doc of HDFS-5682, we plan to add new 
> quotaByStorageType command and new name node RPC protocol for it. The quota 
> by storage type feature is applied to HDFS directory level similar to 
> traditional HDFS space quota. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-3689) Add support for variable length block

2015-01-26 Thread Tsz Wo Nicholas Sze (JIRA)

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

Tsz Wo Nicholas Sze commented on HDFS-3689:
---

- Add an if-statement to check targetRepl - src.getBlockReplication() != 0 
before adding it to delta since src.computeFileSize() is a little bit expensive.
- The if-condition below should check if delta <= 0 and the comment "if delta 
is <0" should be updated to "if delta is <= 0".
{code}
+if (!fsd.getFSNamesystem().isImageLoaded() || fsd.shouldSkipQuotaChecks()) 
{
+  // Do not check quota if delta is <0 or editlog is still being processed
+  return;
{code}

> Add support for variable length block
> -
>
> Key: HDFS-3689
> URL: https://issues.apache.org/jira/browse/HDFS-3689
> Project: Hadoop HDFS
>  Issue Type: New Feature
>  Components: datanode, hdfs-client, namenode
>Affects Versions: 3.0.0
>Reporter: Suresh Srinivas
>Assignee: Jing Zhao
> Attachments: HDFS-3689.000.patch, HDFS-3689.001.patch, 
> HDFS-3689.002.patch, HDFS-3689.003.patch, HDFS-3689.003.patch, 
> HDFS-3689.004.patch, HDFS-3689.005.patch, HDFS-3689.006.patch, 
> HDFS-3689.007.patch, HDFS-3689.008.patch, HDFS-3689.008.patch, 
> HDFS-3689.009.patch, HDFS-3689.009.patch, editsStored
>
>
> Currently HDFS supports fixed length blocks. Supporting variable length block 
> will allow new use cases and features to be built on top of HDFS. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7339) Allocating and persisting block groups in NameNode

2015-01-26 Thread Jing Zhao (JIRA)

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

Jing Zhao commented on HDFS-7339:
-

bq. Change the hash function so that consecutive IDs will be mapped to the same 
hash value and implement BlockGroup.equal(..) so that it returns true with any 
block id in the group.

Had an offline discussion with [~szetszwo] about this just now. This new hash 
function will cause extra scanning in the bucket, since every 16 contiguous 
blocks will be mapped to the same bucket. Currently for a large cluster the 
blocksMap can contain several million buckets, which is in the same scale of 
the total number of blocks. Thus the current implementation will not have a lot 
of bucket scan in normal case. Therefore I guess we may need to revisit this 
optimization and maybe do a simple benchmark about it.

Back to this jira, maybe we should consider providing a relative simple 
implementation first and do optimization in a separate jira. Either only using 
blocksMap or allocating an extra blockgroupsMap looks fine to me. Maybe we 
should also schedule an offline discussion sometime this week.

> Allocating and persisting block groups in NameNode
> --
>
> Key: HDFS-7339
> URL: https://issues.apache.org/jira/browse/HDFS-7339
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Zhe Zhang
>Assignee: Zhe Zhang
> Attachments: HDFS-7339-001.patch, HDFS-7339-002.patch, 
> HDFS-7339-003.patch, HDFS-7339-004.patch, HDFS-7339-005.patch, 
> HDFS-7339-006.patch, Meta-striping.jpg, NN-stripping.jpg
>
>
> All erasure codec operations center around the concept of _block group_; they 
> are formed in initial encoding and looked up in recoveries and conversions. A 
> lightweight class {{BlockGroup}} is created to record the original and parity 
> blocks in a coding group, as well as a pointer to the codec schema (pluggable 
> codec schemas will be supported in HDFS-7337). With the striping layout, the 
> HDFS client needs to operate on all blocks in a {{BlockGroup}} concurrently. 
> Therefore we propose to extend a file’s inode to switch between _contiguous_ 
> and _striping_ modes, with the current mode recorded in a binary flag. An 
> array of BlockGroups (or BlockGroup IDs) is added, which remains empty for 
> “traditional” HDFS files with contiguous block layout.
> The NameNode creates and maintains {{BlockGroup}} instances through the new 
> {{ECManager}} component; the attached figure has an illustration of the 
> architecture. As a simple example, when a {_Striping+EC_} file is created and 
> written to, it will serve requests from the client to allocate new 
> {{BlockGroups}} and store them under the {{INodeFile}}. In the current phase, 
> {{BlockGroups}} are allocated both in initial online encoding and in the 
> conversion from replication to EC. {{ECManager}} also facilitates the lookup 
> of {{BlockGroup}} information for block recovery work.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-49) MiniDFSCluster.stopDataNode will always shut down a node in the cluster if a matching name is not found

2015-01-26 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-49:
---

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12667794/HDFS-49-002.patch
  against trunk revision 1f2b695.

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:green}+1 tests included{color}.  The patch appears to include 1 new 
or modified test files.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 javadoc{color}.  There were no new javadoc warning messages.

{color:green}+1 eclipse:eclipse{color}.  The patch built with 
eclipse:eclipse.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 2.0.3) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:red}-1 core tests{color}.  The patch failed these unit tests in 
hadoop-hdfs-project/hadoop-hdfs:

  org.apache.hadoop.hdfs.TestSafeMode
  org.apache.hadoop.hdfs.server.datanode.TestBlockScanner

  The following test timeouts occurred in 
hadoop-hdfs-project/hadoop-hdfs:

org.apache.hadoop.hdfs.server.namenode.ha.TestStandbyCheckpoints

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/9332//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/9332//console

This message is automatically generated.

> MiniDFSCluster.stopDataNode will always shut down a node in the cluster if a 
> matching name is not found
> ---
>
> Key: HDFS-49
> URL: https://issues.apache.org/jira/browse/HDFS-49
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 0.20.204.0, 0.20.205.0, 1.1.0
>Reporter: Steve Loughran
>Assignee: Steve Loughran
>Priority: Minor
>  Labels: codereview, newbie
> Attachments: HDFS-49-002.patch, hdfs-49.patch
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> The stopDataNode method will shut down the last node in the list of nodes, if 
> one matching a specific name is not found
> This is possibly not what was intended. Better to return false or fail in 
> some other manner if the named node was not located
>  synchronized boolean stopDataNode(String name) {
> int i;
> for (i = 0; i < dataNodes.size(); i++) {
>   DataNode dn = dataNodes.get(i).datanode;
>   if (dn.dnRegistration.getName().equals(name)) {
> break;
>   }
> }
> return stopDataNode(i);
>   }



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-49) MiniDFSCluster.stopDataNode will always shut down a node in the cluster if a matching name is not found

2015-01-26 Thread Arpit Agarwal (JIRA)

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

Arpit Agarwal commented on HDFS-49:
---

+1 for the v002 patch. The test failures are almost certainly unrelated.

> MiniDFSCluster.stopDataNode will always shut down a node in the cluster if a 
> matching name is not found
> ---
>
> Key: HDFS-49
> URL: https://issues.apache.org/jira/browse/HDFS-49
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 0.20.204.0, 0.20.205.0, 1.1.0
>Reporter: Steve Loughran
>Assignee: Steve Loughran
>Priority: Minor
>  Labels: codereview, newbie
> Attachments: HDFS-49-002.patch, hdfs-49.patch
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> The stopDataNode method will shut down the last node in the list of nodes, if 
> one matching a specific name is not found
> This is possibly not what was intended. Better to return false or fail in 
> some other manner if the named node was not located
>  synchronized boolean stopDataNode(String name) {
> int i;
> for (i = 0; i < dataNodes.size(); i++) {
>   DataNode dn = dataNodes.get(i).datanode;
>   if (dn.dnRegistration.getName().equals(name)) {
> break;
>   }
> }
> return stopDataNode(i);
>   }



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-49) MiniDFSCluster.stopDataNode will always shut down a node in the cluster if a matching name is not found

2015-01-26 Thread Ravi Prakash (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-49?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ravi Prakash updated HDFS-49:
-
Status: Patch Available  (was: Open)

> MiniDFSCluster.stopDataNode will always shut down a node in the cluster if a 
> matching name is not found
> ---
>
> Key: HDFS-49
> URL: https://issues.apache.org/jira/browse/HDFS-49
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 1.1.0, 0.20.205.0, 0.20.204.0
>Reporter: Steve Loughran
>Assignee: Steve Loughran
>Priority: Minor
>  Labels: codereview, newbie
> Attachments: HDFS-49-002.patch, hdfs-49.patch
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> The stopDataNode method will shut down the last node in the list of nodes, if 
> one matching a specific name is not found
> This is possibly not what was intended. Better to return false or fail in 
> some other manner if the named node was not located
>  synchronized boolean stopDataNode(String name) {
> int i;
> for (i = 0; i < dataNodes.size(); i++) {
>   DataNode dn = dataNodes.get(i).datanode;
>   if (dn.dnRegistration.getName().equals(name)) {
> break;
>   }
> }
> return stopDataNode(i);
>   }



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-49) MiniDFSCluster.stopDataNode will always shut down a node in the cluster if a matching name is not found

2015-01-26 Thread Ravi Prakash (JIRA)

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

Ravi Prakash commented on HDFS-49:
--

Patch looks good to me however the two test failures should probably be fixed 
too. The testReport has probably been deleted from the Jenkins workspace, so 
I'll just cancel and submit patch once again in the hopes that jenkins will run 
again.

> MiniDFSCluster.stopDataNode will always shut down a node in the cluster if a 
> matching name is not found
> ---
>
> Key: HDFS-49
> URL: https://issues.apache.org/jira/browse/HDFS-49
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 0.20.204.0, 0.20.205.0, 1.1.0
>Reporter: Steve Loughran
>Assignee: Steve Loughran
>Priority: Minor
>  Labels: codereview, newbie
> Attachments: HDFS-49-002.patch, hdfs-49.patch
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> The stopDataNode method will shut down the last node in the list of nodes, if 
> one matching a specific name is not found
> This is possibly not what was intended. Better to return false or fail in 
> some other manner if the named node was not located
>  synchronized boolean stopDataNode(String name) {
> int i;
> for (i = 0; i < dataNodes.size(); i++) {
>   DataNode dn = dataNodes.get(i).datanode;
>   if (dn.dnRegistration.getName().equals(name)) {
> break;
>   }
> }
> return stopDataNode(i);
>   }



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-49) MiniDFSCluster.stopDataNode will always shut down a node in the cluster if a matching name is not found

2015-01-26 Thread Ravi Prakash (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-49?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ravi Prakash updated HDFS-49:
-
Status: Open  (was: Patch Available)

> MiniDFSCluster.stopDataNode will always shut down a node in the cluster if a 
> matching name is not found
> ---
>
> Key: HDFS-49
> URL: https://issues.apache.org/jira/browse/HDFS-49
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 1.1.0, 0.20.205.0, 0.20.204.0
>Reporter: Steve Loughran
>Assignee: Steve Loughran
>Priority: Minor
>  Labels: codereview, newbie
> Attachments: HDFS-49-002.patch, hdfs-49.patch
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> The stopDataNode method will shut down the last node in the list of nodes, if 
> one matching a specific name is not found
> This is possibly not what was intended. Better to return false or fail in 
> some other manner if the named node was not located
>  synchronized boolean stopDataNode(String name) {
> int i;
> for (i = 0; i < dataNodes.size(); i++) {
>   DataNode dn = dataNodes.get(i).datanode;
>   if (dn.dnRegistration.getName().equals(name)) {
> break;
>   }
> }
> return stopDataNode(i);
>   }



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7285) Erasure Coding Support inside HDFS

2015-01-26 Thread Tsz Wo Nicholas Sze (JIRA)

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

Tsz Wo Nicholas Sze commented on HDFS-7285:
---

> I created a Google doc which is editable. If possible please login so I know 
> who's making each comment and update.

Thanks for share it.  I do suggest that we only share it with the contributors 
who have intention to edit the doc.  Anyone who wants to edit the doc should 
send a request to you.  It could prevent accidental changes from someone 
reading the doc.  Sound good?

> ... If you don't mind the wait I plan to finish updating it before Wednesday. 
> ...

Happy to wait.  Please take you time.

I will think more about the package name.

> Erasure Coding Support inside HDFS
> --
>
> Key: HDFS-7285
> URL: https://issues.apache.org/jira/browse/HDFS-7285
> Project: Hadoop HDFS
>  Issue Type: New Feature
>Reporter: Weihua Jiang
>Assignee: Zhe Zhang
> Attachments: ECAnalyzer.py, ECParser.py, 
> HDFSErasureCodingDesign-20141028.pdf, HDFSErasureCodingDesign-20141217.pdf, 
> fsimage-analysis-20150105.pdf
>
>
> Erasure Coding (EC) can greatly reduce the storage overhead without sacrifice 
> of data reliability, comparing to the existing HDFS 3-replica approach. For 
> example, if we use a 10+4 Reed Solomon coding, we can allow loss of 4 blocks, 
> with storage overhead only being 40%. This makes EC a quite attractive 
> alternative for big data storage, particularly for cold data. 
> Facebook had a related open source project called HDFS-RAID. It used to be 
> one of the contribute packages in HDFS but had been removed since Hadoop 2.0 
> for maintain reason. The drawbacks are: 1) it is on top of HDFS and depends 
> on MapReduce to do encoding and decoding tasks; 2) it can only be used for 
> cold files that are intended not to be appended anymore; 3) the pure Java EC 
> coding implementation is extremely slow in practical use. Due to these, it 
> might not be a good idea to just bring HDFS-RAID back.
> We (Intel and Cloudera) are working on a design to build EC into HDFS that 
> gets rid of any external dependencies, makes it self-contained and 
> independently maintained. This design lays the EC feature on the storage type 
> support and considers compatible with existing HDFS features like caching, 
> snapshot, encryption, high availability and etc. This design will also 
> support different EC coding schemes, implementations and policies for 
> different deployment scenarios. By utilizing advanced libraries (e.g. Intel 
> ISA-L library), an implementation can greatly improve the performance of EC 
> encoding/decoding and makes the EC solution even more attractive. We will 
> post the design document soon. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7411) Refactor and improve decommissioning logic into DecommissionManager

2015-01-26 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-7411:
-

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12694630/hdfs-7411.009.patch
  against trunk revision 1f2b695.

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:green}+1 tests included{color}.  The patch appears to include 12 new 
or modified test files.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 javadoc{color}.  There were no new javadoc warning messages.

{color:green}+1 eclipse:eclipse{color}.  The patch built with 
eclipse:eclipse.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 2.0.3) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:red}-1 core tests{color}.  The patch failed these unit tests in 
hadoop-hdfs-project/hadoop-hdfs:

  org.apache.hadoop.hdfs.server.balancer.TestBalancer

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/9331//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/9331//console

This message is automatically generated.

> Refactor and improve decommissioning logic into DecommissionManager
> ---
>
> Key: HDFS-7411
> URL: https://issues.apache.org/jira/browse/HDFS-7411
> Project: Hadoop HDFS
>  Issue Type: Improvement
>Affects Versions: 2.5.1
>Reporter: Andrew Wang
>Assignee: Andrew Wang
> Attachments: hdfs-7411.001.patch, hdfs-7411.002.patch, 
> hdfs-7411.003.patch, hdfs-7411.004.patch, hdfs-7411.005.patch, 
> hdfs-7411.006.patch, hdfs-7411.007.patch, hdfs-7411.008.patch, 
> hdfs-7411.009.patch
>
>
> Would be nice to split out decommission logic from DatanodeManager to 
> DecommissionManager.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7285) Erasure Coding Support inside HDFS

2015-01-26 Thread Zhe Zhang (JIRA)

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

Zhe Zhang commented on HDFS-7285:
-

I created a Google [doc | 
https://docs.google.com/document/d/12YbFDFQGJkx9aCPmtJVslgCIWC6ULnmJQxrIm-e8XFs/edit?usp=sharing]
 which is editable. If possible please login so I know who's making each 
comment and update.

[~szetszwo] The doc was last updated in mid December and doesn't contain some 
of the latest updates (mainly from HDFS-7339). If you don't mind the wait I 
plan to finish updating it before Wednesday. You can also go ahead with your 
updates assuming the HDFS-7339 discussions were incorporated.

Package naming is an interesting topic. *Erasure* doesn't sound very 
appropriate because it literally means "the act of erasing something" and is a 
bit ambiguous itself.  Actually erasure coding is [a type of error correction 
codes | 
http://en.wikipedia.org/wiki/Forward_error_correction#List_of_error-correcting_codes]
 so we don't need to worry about the conflict with "error correction". The only 
way to decrease ambiguity in general is to enlengthen the abbreviation. Two 
potential candidates came to mind: *ecc* standing for "error correction codes"; 
or *erc* "standing for "erasure coding" more specifically. Thoughts?

> Erasure Coding Support inside HDFS
> --
>
> Key: HDFS-7285
> URL: https://issues.apache.org/jira/browse/HDFS-7285
> Project: Hadoop HDFS
>  Issue Type: New Feature
>Reporter: Weihua Jiang
>Assignee: Zhe Zhang
> Attachments: ECAnalyzer.py, ECParser.py, 
> HDFSErasureCodingDesign-20141028.pdf, HDFSErasureCodingDesign-20141217.pdf, 
> fsimage-analysis-20150105.pdf
>
>
> Erasure Coding (EC) can greatly reduce the storage overhead without sacrifice 
> of data reliability, comparing to the existing HDFS 3-replica approach. For 
> example, if we use a 10+4 Reed Solomon coding, we can allow loss of 4 blocks, 
> with storage overhead only being 40%. This makes EC a quite attractive 
> alternative for big data storage, particularly for cold data. 
> Facebook had a related open source project called HDFS-RAID. It used to be 
> one of the contribute packages in HDFS but had been removed since Hadoop 2.0 
> for maintain reason. The drawbacks are: 1) it is on top of HDFS and depends 
> on MapReduce to do encoding and decoding tasks; 2) it can only be used for 
> cold files that are intended not to be appended anymore; 3) the pure Java EC 
> coding implementation is extremely slow in practical use. Due to these, it 
> might not be a good idea to just bring HDFS-RAID back.
> We (Intel and Cloudera) are working on a design to build EC into HDFS that 
> gets rid of any external dependencies, makes it self-contained and 
> independently maintained. This design lays the EC feature on the storage type 
> support and considers compatible with existing HDFS features like caching, 
> snapshot, encryption, high availability and etc. This design will also 
> support different EC coding schemes, implementations and policies for 
> different deployment scenarios. By utilizing advanced libraries (e.g. Intel 
> ISA-L library), an implementation can greatly improve the performance of EC 
> encoding/decoding and makes the EC solution even more attractive. We will 
> post the design document soon. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7682) {{DistributedFileSystem#getFileChecksum}} of a snapshotted file includes non-snapshotted content

2015-01-26 Thread Jing Zhao (JIRA)

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

Jing Zhao commented on HDFS-7682:
-

Thanks for working on this, [~clamb]. 

One question about the current patch. The following code means we only do the 
length checking if the file is complete. Then for a snapshotted while still 
being written file, we will still have the issue. How about changing the 
condition to "if the src is a snapshot path"? Then we can use 
"{{blockLocations.getFileLength}} + {{last block's length if it's incomplete}}" 
as the length limit.
{code}
+if (blockLocations.isLastBlockComplete()) {
+  remaining = Math.min(length, blockLocations.getFileLength());
+}
{code}

> {{DistributedFileSystem#getFileChecksum}} of a snapshotted file includes 
> non-snapshotted content
> 
>
> Key: HDFS-7682
> URL: https://issues.apache.org/jira/browse/HDFS-7682
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.7.0
>Reporter: Charles Lamb
>Assignee: Charles Lamb
> Attachments: HDFS-7682.000.patch
>
>
> DistributedFileSystem#getFileChecksum of a snapshotted file includes 
> non-snapshotted content.
> The reason why this happens is because DistributedFileSystem#getFileChecksum 
> simply calculates the checksum of all of the CRCs from the blocks in the 
> file. But, in the case of a snapshotted file, we don't want to include data 
> in the checksum that was appended to the last block in the file after the 
> snapshot was taken.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7584) Enable Quota Support for Storage Types (SSD)

2015-01-26 Thread Arpit Agarwal (JIRA)

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

Arpit Agarwal commented on HDFS-7584:
-

Few more comments to wrap up feedback on API and protocol.

# Continuing from previous, you also don't need the null check in 
{{PBHelper.convertStorageType}}.
# DFSClient.java:3064 - Fix formatting.
# Just an observation, and you don't really need to fix it. I realize you are 
trying to avoid a new RPC call by modifying the existing 
{{ClientProtocol.setQuota}} call. But it does create a confusing difference 
between that and {{DFSClient.setQuota}} which has two overloads and the 
matching overload of {{DFSClient.setQuota}} behaves differently (throws 
exception on null). Perhaps it is better to add a new 
{{ClientProtocol.setQuota}} RPC call. Either is fine though.
# Do we need the new config key {{DFS_QUOTA_BY_STORAGETYPE_ENABLED_KEY}}? The 
administrator can already choose to avoid configuring per-type quotas so I am 
not sure the new configuration is useful.
# {{DistributedFileSystem.setQuotaByStorageType}} - the Javadoc _and one or 
more [Storage Type, space Quota] pairs_ does not match the signature.

Looking at the NN changes next.

> Enable Quota Support for Storage Types (SSD) 
> -
>
> Key: HDFS-7584
> URL: https://issues.apache.org/jira/browse/HDFS-7584
> Project: Hadoop HDFS
>  Issue Type: New Feature
>  Components: datanode, namenode
>Reporter: Xiaoyu Yao
>Assignee: Xiaoyu Yao
> Attachments: HDFS-7584 Quota by Storage Type - 01202015.pdf, 
> HDFS-7584.0.patch, HDFS-7584.1.patch, HDFS-7584.2.patch, HDFS-7584.3.patch, 
> HDFS-7584.4.patch, editsStored
>
>
> Phase II of the Heterogeneous storage features have completed by HDFS-6584. 
> This JIRA is opened to enable Quota support of different storage types in 
> terms of storage space usage. This is more important for certain storage 
> types such as SSD as it is precious and more performant. 
> As described in the design doc of HDFS-5682, we plan to add new 
> quotaByStorageType command and new name node RPC protocol for it. The quota 
> by storage type feature is applied to HDFS directory level similar to 
> traditional HDFS space quota. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7677) DistributedFileSystem#truncate should resolve symlinks

2015-01-26 Thread Yi Liu (JIRA)

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

Yi Liu commented on HDFS-7677:
--

That's great. So [~shv] and [~cmccabe] please help to take a look at the patch, 
thanks.

> DistributedFileSystem#truncate should resolve symlinks
> --
>
> Key: HDFS-7677
> URL: https://issues.apache.org/jira/browse/HDFS-7677
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode, namenode
>Reporter: Yi Liu
>Assignee: Yi Liu
> Attachments: HDFS-7677.001.patch
>
>
> We should resolve the symlinks in DistributedFileSystem#truncate as we do for 
> {{create}}, {{open}}, {{append}} and so on, I don't see any reason not 
> support it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-7680) Support dataset-specific choice of short circuit implementation

2015-01-26 Thread Joe Pallas (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7680?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Joe Pallas updated HDFS-7680:
-
Description: 
As described in HDFS-5194, the current support for short circuit reading is 
tightly coupled to the default Dataset implementation.  Since alternative 
implementations of the FsDatasetSpi may use a different short circuit pathway, 
there needs to be a way for the client to acquire the right kind of BlockReader.

Reviewing some considerations:
Today, there is only one dataset per datanode (with multiple volumes).  Is that 
likely to change?
Can there be multiple datanodes local to a client? (definition of "local" might 
depend on dataset implementation)
Is it okay to assume that the client and datanode share configuration?  More 
broadly, how should the client discover the appropriate short-circuit 
implementation?


  was:
As described in HDFS-5194, the current support for short circuit reading is 
tightly coupled to the default Dataset implementation.  Since alternative 
implementations of the FsDatasetSpi may use a different short circuit pathway, 
there needs to be a way for the client to acquire the right kind of BlockReader.

Reviewing some considerations:
Today, there is only one dataset per datanode (with multiple volumes).  Is that 
likely to change?
Can there be multiple datanodes local to a client?
Is it okay to assume that the client and datanode share configuration?  More 
broadly, how should the client discover the appropriate short-circuit 
implementation?



> Support dataset-specific choice of short circuit implementation
> ---
>
> Key: HDFS-7680
> URL: https://issues.apache.org/jira/browse/HDFS-7680
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode, dfsclient, hdfs-client
>Affects Versions: 3.0.0
>Reporter: Joe Pallas
>Assignee: Joe Pallas
>
> As described in HDFS-5194, the current support for short circuit reading is 
> tightly coupled to the default Dataset implementation.  Since alternative 
> implementations of the FsDatasetSpi may use a different short circuit 
> pathway, there needs to be a way for the client to acquire the right kind of 
> BlockReader.
> Reviewing some considerations:
> Today, there is only one dataset per datanode (with multiple volumes).  Is 
> that likely to change?
> Can there be multiple datanodes local to a client? (definition of "local" 
> might depend on dataset implementation)
> Is it okay to assume that the client and datanode share configuration?  More 
> broadly, how should the client discover the appropriate short-circuit 
> implementation?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7677) DistributedFileSystem#truncate should resolve symlinks

2015-01-26 Thread Yi Liu (JIRA)

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

Yi Liu commented on HDFS-7677:
--

I mean in the design doc of HDFS-7056.
Thanks for your confirmation about supporting it.

> DistributedFileSystem#truncate should resolve symlinks
> --
>
> Key: HDFS-7677
> URL: https://issues.apache.org/jira/browse/HDFS-7677
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode, namenode
>Reporter: Yi Liu
>Assignee: Yi Liu
> Attachments: HDFS-7677.001.patch
>
>
> We should resolve the symlinks in DistributedFileSystem#truncate as we do for 
> {{create}}, {{open}}, {{append}} and so on, I don't see any reason not 
> support it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-7655) Expose truncate API for Web HDFS

2015-01-26 Thread Yi Liu (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7655?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yi Liu updated HDFS-7655:
-
Target Version/s: 2.7.0  (was: 3.0.0)

> Expose truncate API for Web HDFS
> 
>
> Key: HDFS-7655
> URL: https://issues.apache.org/jira/browse/HDFS-7655
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode, namenode
>Reporter: Yi Liu
>Assignee: Yi Liu
> Attachments: HDFS-7655.001.patch
>
>
> This JIRA is to expose truncate API for Web HDFS.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7285) Erasure Coding Support inside HDFS

2015-01-26 Thread Tsz Wo Nicholas Sze (JIRA)

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

Tsz Wo Nicholas Sze commented on HDFS-7285:
---

> ... but I guess we could also find many meanings for 'erasure' too. ...

Since it is under the io package, it is much harder to have an ambiguous 
meaning.  However, io.ec still possibly means for error correcting (or arguably 
elliptic-curve cryptography).  Won't you agree that a two-letter acronym "ec" 
is much more ambiguous than the word "erasure"?

> In this JIRA descrition for this effort, it's explicitly stated as below:

Yes, it is very clear in the current context since there is no other project 
for error correcting.  But the package name sits there forever.  It we have a 
error correcting project later on, it may become a problem.

> Our branch is also named HDFS-EC.

Branch is temporary and invisible to users, we may delete, rename and reuse 
branch name as some point.  It is much harder to change package names since it 
is an incompatible change.

The "io.erasure" package name is just a minor suggestion.  I am fine if you 
insist using "io.ec" although I think it may lead to some unnecessary confusion.

> Erasure Coding Support inside HDFS
> --
>
> Key: HDFS-7285
> URL: https://issues.apache.org/jira/browse/HDFS-7285
> Project: Hadoop HDFS
>  Issue Type: New Feature
>Reporter: Weihua Jiang
>Assignee: Zhe Zhang
> Attachments: ECAnalyzer.py, ECParser.py, 
> HDFSErasureCodingDesign-20141028.pdf, HDFSErasureCodingDesign-20141217.pdf, 
> fsimage-analysis-20150105.pdf
>
>
> Erasure Coding (EC) can greatly reduce the storage overhead without sacrifice 
> of data reliability, comparing to the existing HDFS 3-replica approach. For 
> example, if we use a 10+4 Reed Solomon coding, we can allow loss of 4 blocks, 
> with storage overhead only being 40%. This makes EC a quite attractive 
> alternative for big data storage, particularly for cold data. 
> Facebook had a related open source project called HDFS-RAID. It used to be 
> one of the contribute packages in HDFS but had been removed since Hadoop 2.0 
> for maintain reason. The drawbacks are: 1) it is on top of HDFS and depends 
> on MapReduce to do encoding and decoding tasks; 2) it can only be used for 
> cold files that are intended not to be appended anymore; 3) the pure Java EC 
> coding implementation is extremely slow in practical use. Due to these, it 
> might not be a good idea to just bring HDFS-RAID back.
> We (Intel and Cloudera) are working on a design to build EC into HDFS that 
> gets rid of any external dependencies, makes it self-contained and 
> independently maintained. This design lays the EC feature on the storage type 
> support and considers compatible with existing HDFS features like caching, 
> snapshot, encryption, high availability and etc. This design will also 
> support different EC coding schemes, implementations and policies for 
> different deployment scenarios. By utilizing advanced libraries (e.g. Intel 
> ISA-L library), an implementation can greatly improve the performance of EC 
> encoding/decoding and makes the EC solution even more attractive. We will 
> post the design document soon. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7609) startup used too much time to load edits

2015-01-26 Thread Ming Ma (JIRA)

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

Ming Ma commented on HDFS-7609:
---

[~cnauroth], we upgraded from hadoop 2.0.5 to hadoop 2.4, so yes, from a 
version without this feature to the version with the feature. Last time during 
investigation via code review, it appears {{toAddRetryCache}} should be set to 
false if standby replays old edit logs generated by hadoop version without 
retrycache.

{noformat}
  if (toAddRetryCache) {
fsNamesys.addCacheEntry(deleteOp.rpcClientId, deleteOp.rpcCallId);
  }
{noformat}

> startup used too much time to load edits
> 
>
> Key: HDFS-7609
> URL: https://issues.apache.org/jira/browse/HDFS-7609
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: namenode
>Affects Versions: 2.2.0
>Reporter: Carrey Zhan
> Attachments: HDFS-7609-CreateEditsLogWithRPCIDs.patch, 
> recovery_do_not_use_retrycache.patch
>
>
> One day my namenode crashed because of two journal node timed out at the same 
> time under very high load, leaving behind about 100 million transactions in 
> edits log.(I still have no idea why they were not rolled into fsimage.)
> I tryed to restart namenode, but it showed that almost 20 hours would be 
> needed before finish, and it was loading fsedits most of the time. I also 
> tryed to restart namenode in recover mode, the loading speed had no different.
> I looked into the stack trace, judged that it is caused by the retry cache. 
> So I set dfs.namenode.enable.retrycache to false, the restart process 
> finished in half an hour.
> I think the retry cached is useless during startup, at least during recover 
> process.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7682) {{DistributedFileSystem#getFileChecksum}} of a snapshotted file includes non-snapshotted content

2015-01-26 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-7682:
-

{color:green}+1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12694609/HDFS-7682.000.patch
  against trunk revision 21d5599.

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:green}+1 tests included{color}.  The patch appears to include 1 new 
or modified test files.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 javadoc{color}.  There were no new javadoc warning messages.

{color:green}+1 eclipse:eclipse{color}.  The patch built with 
eclipse:eclipse.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 2.0.3) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:green}+1 core tests{color}.  The patch passed unit tests in 
hadoop-hdfs-project/hadoop-hdfs.

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/9330//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/9330//console

This message is automatically generated.

> {{DistributedFileSystem#getFileChecksum}} of a snapshotted file includes 
> non-snapshotted content
> 
>
> Key: HDFS-7682
> URL: https://issues.apache.org/jira/browse/HDFS-7682
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.7.0
>Reporter: Charles Lamb
>Assignee: Charles Lamb
> Attachments: HDFS-7682.000.patch
>
>
> DistributedFileSystem#getFileChecksum of a snapshotted file includes 
> non-snapshotted content.
> The reason why this happens is because DistributedFileSystem#getFileChecksum 
> simply calculates the checksum of all of the CRCs from the blocks in the 
> file. But, in the case of a snapshotted file, we don't want to include data 
> in the checksum that was appended to the last block in the file after the 
> snapshot was taken.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7353) Raw Erasure Coder API for concrete encoding and decoding

2015-01-26 Thread Kai Zheng (JIRA)

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

Kai Zheng commented on HDFS-7353:
-

Thanks [~zhz] and [~szetszwo] a lot for your great comments. I have to admit 
I'm bad at comments, docs and styles regarding what makes a patch. Let me catch 
up with you guys!

> Raw Erasure Coder API for concrete encoding and decoding
> 
>
> Key: HDFS-7353
> URL: https://issues.apache.org/jira/browse/HDFS-7353
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Kai Zheng
>Assignee: Kai Zheng
> Fix For: HDFS-EC
>
> Attachments: HDFS-7353-v1.patch, HDFS-7353-v2.patch, 
> HDFS-7353-v3.patch, HDFS-7353-v4.patch
>
>
> This is to abstract and define raw erasure coder API across different codes 
> algorithms like RS, XOR and etc. Such API can be implemented by utilizing 
> various library support, such as Intel ISA library and Jerasure library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-7611) deleteSnapshot and delete of a file can leave orphaned blocks in the blocksMap on NameNode restart.

2015-01-26 Thread Jing Zhao (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7611?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jing Zhao updated HDFS-7611:

Attachment: HDFS-7611.001.patch

> deleteSnapshot and delete of a file can leave orphaned blocks in the 
> blocksMap on NameNode restart.
> ---
>
> Key: HDFS-7611
> URL: https://issues.apache.org/jira/browse/HDFS-7611
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: namenode
>Affects Versions: 2.6.0
>Reporter: Konstantin Shvachko
>Assignee: Byron Wong
>Priority: Critical
> Attachments: HDFS-7611.000.patch, HDFS-7611.001.patch, 
> blocksNotDeletedTest.patch, testTruncateEditLogLoad.log
>
>
> If quotas are enabled a combination of operations *deleteSnapshot* and 
> *delete* of a file can leave  orphaned  blocks in the blocksMap on NameNode 
> restart. They are counted as missing on the NameNode, and can prevent 
> NameNode from coming out of safeMode and could cause memory leak during 
> startup.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-7611) deleteSnapshot and delete of a file can leave orphaned blocks in the blocksMap on NameNode restart.

2015-01-26 Thread Jing Zhao (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7611?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jing Zhao updated HDFS-7611:

Status: Patch Available  (was: Open)

> deleteSnapshot and delete of a file can leave orphaned blocks in the 
> blocksMap on NameNode restart.
> ---
>
> Key: HDFS-7611
> URL: https://issues.apache.org/jira/browse/HDFS-7611
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: namenode
>Affects Versions: 2.6.0
>Reporter: Konstantin Shvachko
>Assignee: Byron Wong
>Priority: Critical
> Attachments: HDFS-7611.000.patch, HDFS-7611.001.patch, 
> blocksNotDeletedTest.patch, testTruncateEditLogLoad.log
>
>
> If quotas are enabled a combination of operations *deleteSnapshot* and 
> *delete* of a file can leave  orphaned  blocks in the blocksMap on NameNode 
> restart. They are counted as missing on the NameNode, and can prevent 
> NameNode from coming out of safeMode and could cause memory leak during 
> startup.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7285) Erasure Coding Support inside HDFS

2015-01-26 Thread Kai Zheng (JIRA)

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

Kai Zheng commented on HDFS-7285:
-

I searched the code base and didn't find any existing package named 'ec' so 
there won't conflict actually.
As you might note:
1. In this JIRA descrition for this effort, it's explicitly stated as below:
 bq. Erasure Coding (EC) can greatly reduce the storage overhead without 
sacrifice of data reliability
2. Our branch is also named HDFS-EC.

If we do have other efforts for error correcting (or elliptic curve) for the 
project, then it's the point to avoid using 'ec' package name since it's 
already used here in this effort for 'erasure coding'.

> Erasure Coding Support inside HDFS
> --
>
> Key: HDFS-7285
> URL: https://issues.apache.org/jira/browse/HDFS-7285
> Project: Hadoop HDFS
>  Issue Type: New Feature
>Reporter: Weihua Jiang
>Assignee: Zhe Zhang
> Attachments: ECAnalyzer.py, ECParser.py, 
> HDFSErasureCodingDesign-20141028.pdf, HDFSErasureCodingDesign-20141217.pdf, 
> fsimage-analysis-20150105.pdf
>
>
> Erasure Coding (EC) can greatly reduce the storage overhead without sacrifice 
> of data reliability, comparing to the existing HDFS 3-replica approach. For 
> example, if we use a 10+4 Reed Solomon coding, we can allow loss of 4 blocks, 
> with storage overhead only being 40%. This makes EC a quite attractive 
> alternative for big data storage, particularly for cold data. 
> Facebook had a related open source project called HDFS-RAID. It used to be 
> one of the contribute packages in HDFS but had been removed since Hadoop 2.0 
> for maintain reason. The drawbacks are: 1) it is on top of HDFS and depends 
> on MapReduce to do encoding and decoding tasks; 2) it can only be used for 
> cold files that are intended not to be appended anymore; 3) the pure Java EC 
> coding implementation is extremely slow in practical use. Due to these, it 
> might not be a good idea to just bring HDFS-RAID back.
> We (Intel and Cloudera) are working on a design to build EC into HDFS that 
> gets rid of any external dependencies, makes it self-contained and 
> independently maintained. This design lays the EC feature on the storage type 
> support and considers compatible with existing HDFS features like caching, 
> snapshot, encryption, high availability and etc. This design will also 
> support different EC coding schemes, implementations and policies for 
> different deployment scenarios. By utilizing advanced libraries (e.g. Intel 
> ISA-L library), an implementation can greatly improve the performance of EC 
> encoding/decoding and makes the EC solution even more attractive. We will 
> post the design document soon. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-6673) Add Delimited format supports for PB OIV tool

2015-01-26 Thread Lei (Eddy) Xu (JIRA)

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

Lei (Eddy) Xu commented on HDFS-6673:
-

Thank you so much for the continuous inputs on this issue, [~andrew.wang], 
[~wheat9] and [~cmccabe]!

Just want to add a little bit more information regarding our design 
considerations.

bq. Convert the fsimage into LevelDB before running the oiv.

We do agree that an ordered fsimage in LevelDB can be scanned much faster than 
the approach we used in the path. However, the main concern about this approach 
and the reason that we gave up on this are that:  we discovered that writing a 
large fsimage (> 1GB) into LevelDB along is several times slower (4-5x) than 
the end-to-end time used in the latest patch. We believed that the bottleneck 
is write amplification on LevelDB, but not in-memory computation (e.g., 
serialization), since we had observed that the throughput of writing inodes to 
LevelDB continuously drops _significantly_ after the db size becomes larger 
than 1GB. That's the reason that we expected it would be much worse for even 
larger fsimage. 

Adding another data point, currently for the 3.3GB (33M inodes) fsimage we 
test, we have less than 300MB metadata in LevelDB. If we could assume that the 
file distributions are similar amount fsimages, we will have {{2-3GB}} leveldb 
DB for {{20-GB}} fsimage ({{6-8GB}} leveldb for {{40GB}} (400M inodes)). The 
working set here is {{6-8GB}} leveldb, which is still arguably reasonable for 
today's laptop memory. Moreover, today's laptops have quite fast SSD for decent 
random IO :)

I would be very interested to see the performance results on such {{400M}} 
inodes fsimage if possible, which will definitely help me to optimize this 
patch. 

bq. Tweak saver of the pb-based fsimage so that it stores the inodes using with 
the order of the full path. It can be done without changing the format of the 
current fsimage.

That would be much appreciated if this can be done. 

> Add Delimited format supports for PB OIV tool
> -
>
> Key: HDFS-6673
> URL: https://issues.apache.org/jira/browse/HDFS-6673
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Affects Versions: 2.4.0
>Reporter: Lei (Eddy) Xu
>Assignee: Lei (Eddy) Xu
>Priority: Minor
> Attachments: HDFS-6673.000.patch, HDFS-6673.001.patch, 
> HDFS-6673.002.patch, HDFS-6673.003.patch, HDFS-6673.004.patch, 
> HDFS-6673.005.patch, HDFS-6673.006.patch
>
>
> The new oiv tool, which is designed for Protobuf fsimage, lacks a few 
> features supported in the old {{oiv}} tool. 
> This task adds supports of _Delimited_ processor to the oiv tool. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7353) Raw Erasure Coder API for concrete encoding and decoding

2015-01-26 Thread Tsz Wo Nicholas Sze (JIRA)

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

Tsz Wo Nicholas Sze commented on HDFS-7353:
---

Thanks for the update.  The new patch looks much better!

> ... It's not "length in bytes", but regarding how many stripping units. A 
> unit can be a byte, a chunk or buffer and even a block.

How about renaming dataSize() and paritySize() to dataUnit() and parityUnit()?  
BTW, the above sentence should be added to the javadoc. e.g.
{code}
+  /**
+   * The number of data stripping units for the coding.  A unit can be a byte, 
a chunk or buffer and even a block.
+   * @return
+   */
+  public int dataUnit() {
{code}

Some other comments:
- "A wrapper for ByteBuffer or bytes array" => "A wrapper for ByteBuffer or 
bytes array for a erasure code chunk."

- AbstractRawErasureDecoder still has javadoc "An abstract raw erasure decoder 
class".  It needs more description.

- The @inheritDoc tags can be removed.  Having a @Override tag is good enough.

- For RawErasureDecoder/RawErasureEncoder, we only need to provide the new 
comment other than the ones in RawErasureCoder and have a reference to 
RawErasureCoder, e.g.
{code}
/**
 * RawErasureDecoder performs decoding given chunks of input data and generates 
missing data that
 * corresponds to an erasure code scheme, like XOR and Reed-Solomon. 
 * It implements the {@link RawErasureCoder} interface.
 */
{code}


> Raw Erasure Coder API for concrete encoding and decoding
> 
>
> Key: HDFS-7353
> URL: https://issues.apache.org/jira/browse/HDFS-7353
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Kai Zheng
>Assignee: Kai Zheng
> Fix For: HDFS-EC
>
> Attachments: HDFS-7353-v1.patch, HDFS-7353-v2.patch, 
> HDFS-7353-v3.patch, HDFS-7353-v4.patch
>
>
> This is to abstract and define raw erasure coder API across different codes 
> algorithms like RS, XOR and etc. Such API can be implemented by utilizing 
> various library support, such as Intel ISA library and Jerasure library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-5796) The file system browser in the namenode UI requires SPNEGO.

2015-01-26 Thread Arun Suresh (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-5796?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Arun Suresh updated HDFS-5796:
--
Attachment: HDFS-5796.3.patch

Updating patch with some refactoring.
* {{BrowserAuthenticationHandler}} moved to its own class since it would be 
required by {{HttpServer2}} as well

> The file system browser in the namenode UI requires SPNEGO.
> ---
>
> Key: HDFS-5796
> URL: https://issues.apache.org/jira/browse/HDFS-5796
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.5.0
>Reporter: Kihwal Lee
>Assignee: Arun Suresh
> Attachments: HDFS-5796.1.patch, HDFS-5796.1.patch, HDFS-5796.2.patch, 
> HDFS-5796.3.patch
>
>
> After HDFS-5382, the browser makes webhdfs REST calls directly, requiring 
> SPNEGO to work between user's browser and namenode.  This won't work if the 
> cluster's security infrastructure is isolated from the regular network.  
> Moreover, SPNEGO is not supposed to be required for user-facing web pages.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7285) Erasure Coding Support inside HDFS

2015-01-26 Thread Kai Zheng (JIRA)

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

Kai Zheng commented on HDFS-7285:
-

I'm not an English speaker, but I guess we could also find many meanings for 
'erasure' too. The perfect naming to resolve any ambiguity would be 'erasure 
coding' or 'erasure code' but they're a little verbose for a package name. When 
simplified form like 'ec' is desired, we are sure and able to find other 
meanings for it like the cases you mentioned, but does that mean we shouldn't 
use it? If so, we can probably find many cases in the world.

I might be bad to express what I thought, but I do not think it makes the great 
sense to change the overall design just for this. Would anyone give more 
thoughts?

> Erasure Coding Support inside HDFS
> --
>
> Key: HDFS-7285
> URL: https://issues.apache.org/jira/browse/HDFS-7285
> Project: Hadoop HDFS
>  Issue Type: New Feature
>Reporter: Weihua Jiang
>Assignee: Zhe Zhang
> Attachments: ECAnalyzer.py, ECParser.py, 
> HDFSErasureCodingDesign-20141028.pdf, HDFSErasureCodingDesign-20141217.pdf, 
> fsimage-analysis-20150105.pdf
>
>
> Erasure Coding (EC) can greatly reduce the storage overhead without sacrifice 
> of data reliability, comparing to the existing HDFS 3-replica approach. For 
> example, if we use a 10+4 Reed Solomon coding, we can allow loss of 4 blocks, 
> with storage overhead only being 40%. This makes EC a quite attractive 
> alternative for big data storage, particularly for cold data. 
> Facebook had a related open source project called HDFS-RAID. It used to be 
> one of the contribute packages in HDFS but had been removed since Hadoop 2.0 
> for maintain reason. The drawbacks are: 1) it is on top of HDFS and depends 
> on MapReduce to do encoding and decoding tasks; 2) it can only be used for 
> cold files that are intended not to be appended anymore; 3) the pure Java EC 
> coding implementation is extremely slow in practical use. Due to these, it 
> might not be a good idea to just bring HDFS-RAID back.
> We (Intel and Cloudera) are working on a design to build EC into HDFS that 
> gets rid of any external dependencies, makes it self-contained and 
> independently maintained. This design lays the EC feature on the storage type 
> support and considers compatible with existing HDFS features like caching, 
> snapshot, encryption, high availability and etc. This design will also 
> support different EC coding schemes, implementations and policies for 
> different deployment scenarios. By utilizing advanced libraries (e.g. Intel 
> ISA-L library), an implementation can greatly improve the performance of EC 
> encoding/decoding and makes the EC solution even more attractive. We will 
> post the design document soon. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7339) Allocating and persisting block groups in NameNode

2015-01-26 Thread Zhe Zhang (JIRA)

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

Zhe Zhang commented on HDFS-7339:
-

bq. It is not true. For a EC-block, the block group object is stored in the 
BlocksMap with the first block ID. The BlockGroup.equal(..) is implemented in a 
way that it returns true for any Block with ID belong to the group. In the 
example, BlockGroup(0x330).equal(..) returns true for Blocks 0x330..0x338.
Agreed. EC blocks indeed only incur 1 lookup.

bq. For a non-EC block, it is stored as usual. Given any block ID, it 
represents either a EC-block or a normal block. So, lookup(0x331) returns 
either the non-EC Block(0x331) or the BlockGroup(0x330).
Could you elaborate a little on the lookup process? I still don't see how we 
can identify *0x331* with 1 lookup. No matter which key we try first -- *0x331* 
or *0x330*, there's always a chance to miss.

> Allocating and persisting block groups in NameNode
> --
>
> Key: HDFS-7339
> URL: https://issues.apache.org/jira/browse/HDFS-7339
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Zhe Zhang
>Assignee: Zhe Zhang
> Attachments: HDFS-7339-001.patch, HDFS-7339-002.patch, 
> HDFS-7339-003.patch, HDFS-7339-004.patch, HDFS-7339-005.patch, 
> HDFS-7339-006.patch, Meta-striping.jpg, NN-stripping.jpg
>
>
> All erasure codec operations center around the concept of _block group_; they 
> are formed in initial encoding and looked up in recoveries and conversions. A 
> lightweight class {{BlockGroup}} is created to record the original and parity 
> blocks in a coding group, as well as a pointer to the codec schema (pluggable 
> codec schemas will be supported in HDFS-7337). With the striping layout, the 
> HDFS client needs to operate on all blocks in a {{BlockGroup}} concurrently. 
> Therefore we propose to extend a file’s inode to switch between _contiguous_ 
> and _striping_ modes, with the current mode recorded in a binary flag. An 
> array of BlockGroups (or BlockGroup IDs) is added, which remains empty for 
> “traditional” HDFS files with contiguous block layout.
> The NameNode creates and maintains {{BlockGroup}} instances through the new 
> {{ECManager}} component; the attached figure has an illustration of the 
> architecture. As a simple example, when a {_Striping+EC_} file is created and 
> written to, it will serve requests from the client to allocate new 
> {{BlockGroups}} and store them under the {{INodeFile}}. In the current phase, 
> {{BlockGroups}} are allocated both in initial online encoding and in the 
> conversion from replication to EC. {{ECManager}} also facilitates the lookup 
> of {{BlockGroup}} information for block recovery work.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7285) Erasure Coding Support inside HDFS

2015-01-26 Thread Tsz Wo Nicholas Sze (JIRA)

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

Tsz Wo Nicholas Sze commented on HDFS-7285:
---

[~zhz], how about using  'erasure' package name instead of 'ec' since ec is 
ambiguous -- it could also mean error correcting (or elliptic curve)?

BTW, would you mind to share the design doc in a editable format?  Otherwise, I 
am going to post a new revised design doc.

> Erasure Coding Support inside HDFS
> --
>
> Key: HDFS-7285
> URL: https://issues.apache.org/jira/browse/HDFS-7285
> Project: Hadoop HDFS
>  Issue Type: New Feature
>Reporter: Weihua Jiang
>Assignee: Zhe Zhang
> Attachments: ECAnalyzer.py, ECParser.py, 
> HDFSErasureCodingDesign-20141028.pdf, HDFSErasureCodingDesign-20141217.pdf, 
> fsimage-analysis-20150105.pdf
>
>
> Erasure Coding (EC) can greatly reduce the storage overhead without sacrifice 
> of data reliability, comparing to the existing HDFS 3-replica approach. For 
> example, if we use a 10+4 Reed Solomon coding, we can allow loss of 4 blocks, 
> with storage overhead only being 40%. This makes EC a quite attractive 
> alternative for big data storage, particularly for cold data. 
> Facebook had a related open source project called HDFS-RAID. It used to be 
> one of the contribute packages in HDFS but had been removed since Hadoop 2.0 
> for maintain reason. The drawbacks are: 1) it is on top of HDFS and depends 
> on MapReduce to do encoding and decoding tasks; 2) it can only be used for 
> cold files that are intended not to be appended anymore; 3) the pure Java EC 
> coding implementation is extremely slow in practical use. Due to these, it 
> might not be a good idea to just bring HDFS-RAID back.
> We (Intel and Cloudera) are working on a design to build EC into HDFS that 
> gets rid of any external dependencies, makes it self-contained and 
> independently maintained. This design lays the EC feature on the storage type 
> support and considers compatible with existing HDFS features like caching, 
> snapshot, encryption, high availability and etc. This design will also 
> support different EC coding schemes, implementations and policies for 
> different deployment scenarios. By utilizing advanced libraries (e.g. Intel 
> ISA-L library), an implementation can greatly improve the performance of EC 
> encoding/decoding and makes the EC solution even more attractive. We will 
> post the design document soon. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7353) Raw Erasure Coder API for concrete encoding and decoding

2015-01-26 Thread Zhe Zhang (JIRA)

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

Zhe Zhang commented on HDFS-7353:
-

Please also address the Javadoc warnings.

> Raw Erasure Coder API for concrete encoding and decoding
> 
>
> Key: HDFS-7353
> URL: https://issues.apache.org/jira/browse/HDFS-7353
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Kai Zheng
>Assignee: Kai Zheng
> Fix For: HDFS-EC
>
> Attachments: HDFS-7353-v1.patch, HDFS-7353-v2.patch, 
> HDFS-7353-v3.patch, HDFS-7353-v4.patch
>
>
> This is to abstract and define raw erasure coder API across different codes 
> algorithms like RS, XOR and etc. Such API can be implemented by utilizing 
> various library support, such as Intel ISA library and Jerasure library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7353) Raw Erasure Coder API for concrete encoding and decoding

2015-01-26 Thread Zhe Zhang (JIRA)

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

Zhe Zhang commented on HDFS-7353:
-

Good work [~drankye]! Please find my comments below:
# {{ECChunk}} looks good to me. It's helpful to handle both array and 
{{ByteBuffer}}
# {{RawErasureCoder}}:
#* Please make sure no line is longer than 80 chars
#* {{dataSize}}, {{paritySize}}, and {{chunkSize}} apply to all descendants of 
this interface. Shouldn't they become member variables?
#* {{dataSize}} and {{paritySize}} could be better named because _size_ could 
mean number of bytes too. How about {{numDataBlks}} and {{numParityBlks}}?
#* What potential implementation of the interface could need {{release()}}? 
Better mention it in the comment.
# {{RawErasureEncoder}} and {{RawErasureDecoder}}
#* Since {{ECChunk}} already wraps around byte arrays and {{ByteBuffer}}, do we 
still need 3 versions of {{encode}} and {{decode}}?
# {{AbstractRawErasureCoder}}
#* Shouldn't {{toBuffers}} and {{toArray}} be static methods in the {{ECChunk}} 
class?

All above should be easy to address. +1 pending these updates.


> Raw Erasure Coder API for concrete encoding and decoding
> 
>
> Key: HDFS-7353
> URL: https://issues.apache.org/jira/browse/HDFS-7353
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Kai Zheng
>Assignee: Kai Zheng
> Fix For: HDFS-EC
>
> Attachments: HDFS-7353-v1.patch, HDFS-7353-v2.patch, 
> HDFS-7353-v3.patch, HDFS-7353-v4.patch
>
>
> This is to abstract and define raw erasure coder API across different codes 
> algorithms like RS, XOR and etc. Such API can be implemented by utilizing 
> various library support, such as Intel ISA library and Jerasure library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7339) Allocating and persisting block groups in NameNode

2015-01-26 Thread Tsz Wo Nicholas Sze (JIRA)

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

Tsz Wo Nicholas Sze commented on HDFS-7339:
---

> However, it seems all of them require an additional lookup (either in 
> blocksMap or in the map of inodes) to identify a non-EC block? ...

It is not true.   For a EC-block, the block group object is stored in the 
BlocksMap with the first block ID.  The BlockGroup.equal(..) is implemented in 
a way that it returns true for any Block with ID belong to the group.  In the 
example, BlockGroup(0x330).equal(..) returns true for Blocks 0x330..0x338.

For a non-EC block, it is stored as usual.  Given any block ID, it represents 
either a EC-block or a normal block.  So, lookup(0x331) returns either the 
non-EC Block(0x331) or the BlockGroup(0x330).

> Allocating and persisting block groups in NameNode
> --
>
> Key: HDFS-7339
> URL: https://issues.apache.org/jira/browse/HDFS-7339
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Zhe Zhang
>Assignee: Zhe Zhang
> Attachments: HDFS-7339-001.patch, HDFS-7339-002.patch, 
> HDFS-7339-003.patch, HDFS-7339-004.patch, HDFS-7339-005.patch, 
> HDFS-7339-006.patch, Meta-striping.jpg, NN-stripping.jpg
>
>
> All erasure codec operations center around the concept of _block group_; they 
> are formed in initial encoding and looked up in recoveries and conversions. A 
> lightweight class {{BlockGroup}} is created to record the original and parity 
> blocks in a coding group, as well as a pointer to the codec schema (pluggable 
> codec schemas will be supported in HDFS-7337). With the striping layout, the 
> HDFS client needs to operate on all blocks in a {{BlockGroup}} concurrently. 
> Therefore we propose to extend a file’s inode to switch between _contiguous_ 
> and _striping_ modes, with the current mode recorded in a binary flag. An 
> array of BlockGroups (or BlockGroup IDs) is added, which remains empty for 
> “traditional” HDFS files with contiguous block layout.
> The NameNode creates and maintains {{BlockGroup}} instances through the new 
> {{ECManager}} component; the attached figure has an illustration of the 
> architecture. As a simple example, when a {_Striping+EC_} file is created and 
> written to, it will serve requests from the client to allocate new 
> {{BlockGroups}} and store them under the {{INodeFile}}. In the current phase, 
> {{BlockGroups}} are allocated both in initial online encoding and in the 
> conversion from replication to EC. {{ECManager}} also facilitates the lookup 
> of {{BlockGroup}} information for block recovery work.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (HDFS-135) TestEditLog assumes that FSNamesystem.getFSNamesystem().dir is non-null, even after the FSNameSystem is closed

2015-01-26 Thread Steve Loughran (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-135?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Steve Loughran resolved HDFS-135.
-
Resolution: Cannot Reproduce

> TestEditLog assumes that FSNamesystem.getFSNamesystem().dir is non-null, even 
> after the FSNameSystem is closed
> --
>
> Key: HDFS-135
> URL: https://issues.apache.org/jira/browse/HDFS-135
> Project: Hadoop HDFS
>  Issue Type: Bug
>Reporter: Steve Loughran
>Assignee: Steve Loughran
>
> In my modified services, I'm setting {{FSNameSystem.dir}} to {{null}} on 
> {{close()}}:
> {code}
> if(dir != null) {
>  dir.close();
>  dir =  null;
> }
> {code}
> This breaks TestEditLog
> {code}
> java.lang.NullPointerException
> at 
> org.apache.hadoop.hdfs.server.namenode.FSEditLog.loadFSEdits(FSEditLog.java:620)
> at 
> org.apache.hadoop.hdfs.server.namenode.TestEditLog.testEditLog(TestEditLog.java:148)
> {code}
> There are two possible conclusions here. 
> # Setting dir=null in {{FSNameSystem.close()}} is a regression and should be 
> fixed
> # The test contains some assumptions that are not valid
> I will leave it to others to decide; I will try and fix the code whichever 
> approach is chosen. Personally, I'd go for setting dir=null as it is cleaner, 
> but there is clearly some risk of backward's compatibility problems, at least 
> in test code



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-42) NetUtils.createSocketAddr NPEs if dfs.datanode.ipc.address is not set for a data node

2015-01-26 Thread Steve Loughran (JIRA)

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

Steve Loughran commented on HDFS-42:


HADOOP-5687 duplicated this; it contained the patch

> NetUtils.createSocketAddr NPEs if dfs.datanode.ipc.address is not set for a 
> data node
> -
>
> Key: HDFS-42
> URL: https://issues.apache.org/jira/browse/HDFS-42
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 0.20.1, 0.20.2, 0.21.0, 0.22.0
>Reporter: Steve Loughran
>Assignee: Steve Loughran
>Priority: Minor
>  Labels: newbie
> Fix For: 0.21.0
>
>
> DataNode.startDatanode assumes that a configuration always returns a non-null 
> dfs.datanode.ipc.address value, as the result is passed straight down to 
> NetUtils.createSocketAddr
> InetSocketAddress ipcAddr = NetUtils.createSocketAddr(
> conf.get("dfs.datanode.ipc.address"));
> which triggers an NPE
> Caused by: java.lang.NullPointerException
> at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:130)
> at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:119)
> at org.apache.hadoop.dfs.DataNode.startDataNode(DataNode.java:353)
> at org.apache.hadoop.dfs.DataNode.(DataNode.java:185)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (HDFS-42) NetUtils.createSocketAddr NPEs if dfs.datanode.ipc.address is not set for a data node

2015-01-26 Thread Steve Loughran (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-42?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Steve Loughran resolved HDFS-42.

   Resolution: Duplicate
Fix Version/s: 0.21.0

> NetUtils.createSocketAddr NPEs if dfs.datanode.ipc.address is not set for a 
> data node
> -
>
> Key: HDFS-42
> URL: https://issues.apache.org/jira/browse/HDFS-42
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 0.20.1, 0.20.2, 0.21.0, 0.22.0
>Reporter: Steve Loughran
>Assignee: Steve Loughran
>Priority: Minor
>  Labels: newbie
> Fix For: 0.21.0
>
>
> DataNode.startDatanode assumes that a configuration always returns a non-null 
> dfs.datanode.ipc.address value, as the result is passed straight down to 
> NetUtils.createSocketAddr
> InetSocketAddress ipcAddr = NetUtils.createSocketAddr(
> conf.get("dfs.datanode.ipc.address"));
> which triggers an NPE
> Caused by: java.lang.NullPointerException
> at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:130)
> at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:119)
> at org.apache.hadoop.dfs.DataNode.startDataNode(DataNode.java:353)
> at org.apache.hadoop.dfs.DataNode.(DataNode.java:185)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-6673) Add Delimited format supports for PB OIV tool

2015-01-26 Thread Haohui Mai (JIRA)

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

Haohui Mai commented on HDFS-6673:
--

bq. I think that the point that Andrew is trying to make is that this tool will 
run quickly on machines with more memory, while still being possible to use on 
machines with less memory.

That's great. The concern that I have is once the LevelDB is bigger than the 
working set, it requires one seek per inode. It will trash the system at some 
size of fsimage (which heavily depends on the system that runs the oiv). As 
many oiv tools that Hadoop have today would like to print out the full path, I 
would like to set the architecture right and to make sure the issue is 
addressed.

bq.  Eventually we will probably want to drop support entirely, perhaps in 
Hadoop 3.0. There is a maintenance burden associated with maintaining two image 
formats.

Agree. I retired the old format in HDFS-6158 and it was revived in HDFS-6293. 
The main requirements of oiv are:

* The OIV can print out the full path for an inode
* The OIV can run on commodity machines like a laptop even for the largest 
fsimage in production
* The reads of the fsimage needs to be disk-friendly, meaning that the number 
of seeks are minimized. 

There are two practical solutions that I can see so far:

* Convert the fsimage into LevelDB before running the oiv
* Tweak saver of the pb-based fsimage so that it stores the inodes using with 
the order of the full path. It can be done without changing the format of the 
current fsimage.

Maybe we can explore these solutions?

> Add Delimited format supports for PB OIV tool
> -
>
> Key: HDFS-6673
> URL: https://issues.apache.org/jira/browse/HDFS-6673
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Affects Versions: 2.4.0
>Reporter: Lei (Eddy) Xu
>Assignee: Lei (Eddy) Xu
>Priority: Minor
> Attachments: HDFS-6673.000.patch, HDFS-6673.001.patch, 
> HDFS-6673.002.patch, HDFS-6673.003.patch, HDFS-6673.004.patch, 
> HDFS-6673.005.patch, HDFS-6673.006.patch
>
>
> The new oiv tool, which is designed for Protobuf fsimage, lacks a few 
> features supported in the old {{oiv}} tool. 
> This task adds supports of _Delimited_ processor to the oiv tool. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7339) Allocating and persisting block groups in NameNode

2015-01-26 Thread Zhe Zhang (JIRA)

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

Zhe Zhang commented on HDFS-7339:
-

Thanks for the analysis [~szetszwo].

The basic tradeoff is the compactness of ID space versus lookup overhead. I 
agree option #1 should be ruled out (most compact allocation, slowest lookup).

>From options #2~#5 the trend is sparser ID allocation; more invariants are 
>guaranteed as a benefit.

However, it seems all of them require an additional lookup (either in 
{{blocksMap}} or in the map of inodes) to identify a non-EC block? For example, 
when a block report for *0x331* arrives, we don't know if it's a non-EC block, 
or an EC block in the group *0x330*. So we must lookup {{blocksMap}} for 
*0x330* and get a miss or find the inode and obtain the storage policy.

Whereas separating the ID space with a binary flag leads to 1 lookup (except 
for legacy, randomly generated block IDs).



> Allocating and persisting block groups in NameNode
> --
>
> Key: HDFS-7339
> URL: https://issues.apache.org/jira/browse/HDFS-7339
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Zhe Zhang
>Assignee: Zhe Zhang
> Attachments: HDFS-7339-001.patch, HDFS-7339-002.patch, 
> HDFS-7339-003.patch, HDFS-7339-004.patch, HDFS-7339-005.patch, 
> HDFS-7339-006.patch, Meta-striping.jpg, NN-stripping.jpg
>
>
> All erasure codec operations center around the concept of _block group_; they 
> are formed in initial encoding and looked up in recoveries and conversions. A 
> lightweight class {{BlockGroup}} is created to record the original and parity 
> blocks in a coding group, as well as a pointer to the codec schema (pluggable 
> codec schemas will be supported in HDFS-7337). With the striping layout, the 
> HDFS client needs to operate on all blocks in a {{BlockGroup}} concurrently. 
> Therefore we propose to extend a file’s inode to switch between _contiguous_ 
> and _striping_ modes, with the current mode recorded in a binary flag. An 
> array of BlockGroups (or BlockGroup IDs) is added, which remains empty for 
> “traditional” HDFS files with contiguous block layout.
> The NameNode creates and maintains {{BlockGroup}} instances through the new 
> {{ECManager}} component; the attached figure has an illustration of the 
> architecture. As a simple example, when a {_Striping+EC_} file is created and 
> written to, it will serve requests from the client to allocate new 
> {{BlockGroups}} and store them under the {{INodeFile}}. In the current phase, 
> {{BlockGroups}} are allocated both in initial online encoding and in the 
> conversion from replication to EC. {{ECManager}} also facilitates the lookup 
> of {{BlockGroup}} information for block recovery work.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-7577) Add additional headers that includes need by Windows

2015-01-26 Thread Thanh Do (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7577?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thanh Do updated HDFS-7577:
---
Attachment: HDFS-7577-branch-HDFS-6994-2.patch

Hi [~cmccabe]. Attached is another patch that throws an error if libhdfs3 is 
compiled in Windows with a non-x86 processor.

> Add additional headers that includes need by Windows
> 
>
> Key: HDFS-7577
> URL: https://issues.apache.org/jira/browse/HDFS-7577
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs-client
>Reporter: Thanh Do
>Assignee: Thanh Do
> Attachments: HDFS-7577-branch-HDFS-6994-0.patch, 
> HDFS-7577-branch-HDFS-6994-1.patch, HDFS-7577-branch-HDFS-6994-2.patch
>
>
> This jira involves adding a list of (mostly dummy) headers that available in 
> POSIX systems, but not in Windows. One step towards making libhdfs3 built in 
> Windows.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-7411) Refactor and improve decommissioning logic into DecommissionManager

2015-01-26 Thread Andrew Wang (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7411?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Wang updated HDFS-7411:
--
Attachment: hdfs-7411.009.patch

Added the @Ignore in this latest patch, no other changes.

> Refactor and improve decommissioning logic into DecommissionManager
> ---
>
> Key: HDFS-7411
> URL: https://issues.apache.org/jira/browse/HDFS-7411
> Project: Hadoop HDFS
>  Issue Type: Improvement
>Affects Versions: 2.5.1
>Reporter: Andrew Wang
>Assignee: Andrew Wang
> Attachments: hdfs-7411.001.patch, hdfs-7411.002.patch, 
> hdfs-7411.003.patch, hdfs-7411.004.patch, hdfs-7411.005.patch, 
> hdfs-7411.006.patch, hdfs-7411.007.patch, hdfs-7411.008.patch, 
> hdfs-7411.009.patch
>
>
> Would be nice to split out decommission logic from DatanodeManager to 
> DecommissionManager.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-7611) deleteSnapshot and delete of a file can leave orphaned blocks in the blocksMap on NameNode restart.

2015-01-26 Thread Jing Zhao (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7611?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jing Zhao updated HDFS-7611:

Attachment: HDFS-7611.000.patch

Upload the patch using the above #2 approach.

> deleteSnapshot and delete of a file can leave orphaned blocks in the 
> blocksMap on NameNode restart.
> ---
>
> Key: HDFS-7611
> URL: https://issues.apache.org/jira/browse/HDFS-7611
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: namenode
>Affects Versions: 2.6.0
>Reporter: Konstantin Shvachko
>Assignee: Byron Wong
>Priority: Critical
> Attachments: HDFS-7611.000.patch, blocksNotDeletedTest.patch, 
> testTruncateEditLogLoad.log
>
>
> If quotas are enabled a combination of operations *deleteSnapshot* and 
> *delete* of a file can leave  orphaned  blocks in the blocksMap on NameNode 
> restart. They are counted as missing on the NameNode, and can prevent 
> NameNode from coming out of safeMode and could cause memory leak during 
> startup.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7611) deleteSnapshot and delete of a file can leave orphaned blocks in the blocksMap on NameNode restart.

2015-01-26 Thread Jing Zhao (JIRA)

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

Jing Zhao commented on HDFS-7611:
-

Thanks for digging into the issue, [~Byron Wong]!

So currently we have two ways to fix the issue:
# While applying the editlog, instead of calling {{INode#addSpaceConsumed}}, we 
should use {{FSDirectory#updateCount}} which checks if image/editlog has been 
loaded.
# We do not compute quota change and update quota usage in 
{{FSDirectory#removeLastINode}} anymore. Instead, we move the quota 
computation/update part to its caller. In this way, the quota usage change, 
even if it's wrong, will not affect the real deletion.

Both changes actually are necessary. But #1 requires a lot of code refactoring. 
Since #2 alone can also fix the reported bug, I guess we can do #1 in a 
separate jira. 

> deleteSnapshot and delete of a file can leave orphaned blocks in the 
> blocksMap on NameNode restart.
> ---
>
> Key: HDFS-7611
> URL: https://issues.apache.org/jira/browse/HDFS-7611
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: namenode
>Affects Versions: 2.6.0
>Reporter: Konstantin Shvachko
>Assignee: Byron Wong
>Priority: Critical
> Attachments: blocksNotDeletedTest.patch, testTruncateEditLogLoad.log
>
>
> If quotas are enabled a combination of operations *deleteSnapshot* and 
> *delete* of a file can leave  orphaned  blocks in the blocksMap on NameNode 
> restart. They are counted as missing on the NameNode, and can prevent 
> NameNode from coming out of safeMode and could cause memory leak during 
> startup.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-3107) HDFS truncate

2015-01-26 Thread Tsz Wo Nicholas Sze (JIRA)

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

Tsz Wo Nicholas Sze commented on HDFS-3107:
---

Thanks a lot for all the great works!

> HDFS truncate
> -
>
> Key: HDFS-3107
> URL: https://issues.apache.org/jira/browse/HDFS-3107
> Project: Hadoop HDFS
>  Issue Type: New Feature
>  Components: datanode, namenode
>Reporter: Lei Chang
>Assignee: Plamen Jeliazkov
> Fix For: 2.7.0
>
> Attachments: HDFS-3107-13.patch, HDFS-3107-14.patch, 
> HDFS-3107-15.patch, HDFS-3107-HDFS-7056-combined.patch, HDFS-3107.008.patch, 
> HDFS-3107.15_branch2.patch, HDFS-3107.patch, HDFS-3107.patch, 
> HDFS-3107.patch, HDFS-3107.patch, HDFS-3107.patch, HDFS-3107.patch, 
> HDFS-3107.patch, HDFS-3107.patch, HDFS-3107.patch, HDFS-3107.patch, 
> HDFS-3107.patch, HDFS_truncate.pdf, HDFS_truncate.pdf, HDFS_truncate.pdf, 
> HDFS_truncate_semantics_Mar15.pdf, HDFS_truncate_semantics_Mar21.pdf, 
> editsStored, editsStored.xml
>
>   Original Estimate: 1,344h
>  Remaining Estimate: 1,344h
>
> Systems with transaction support often need to undo changes made to the 
> underlying storage when a transaction is aborted. Currently HDFS does not 
> support truncate (a standard Posix operation) which is a reverse operation of 
> append, which makes upper layer applications use ugly workarounds (such as 
> keeping track of the discarded byte range per file in a separate metadata 
> store, and periodically running a vacuum process to rewrite compacted files) 
> to overcome this limitation of HDFS.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7660) BlockReceiver#close() might be called multiple times, which causes the fsvolume reference being released incorrectly.

2015-01-26 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-7660:


Thanks, Lei and Yi.

> BlockReceiver#close() might be called multiple times, which causes the 
> fsvolume reference being released incorrectly.
> -
>
> Key: HDFS-7660
> URL: https://issues.apache.org/jira/browse/HDFS-7660
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 3.0.0
>Reporter: Lei (Eddy) Xu
>Assignee: Lei (Eddy) Xu
>Priority: Minor
> Fix For: 2.7.0
>
> Attachments: HDFS-7660.000.patch
>
>
> {{BlockReceiver.close()}} might be called from multiple places, e.g. 
> {{PacketResponder#finalizeBlock}} and {{BlockReceiver#receiveBlock}}. 
> As a result, {{BlockReceiver#replicaHander}} should be set to {{null}} after 
> release the resource.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7648) Verify the datanode directory layout

2015-01-26 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-7648:


I agree with Nicholas that we should implement this in the DirectoryScanner.  
Probably what we want to do is log a warning about files that are in locations 
they do not belong in.  I do not think we should to implement this in the 
layout version upgrade code, since that only gets run once.  The fact that 
hardlinking is done in parallel in the upgrade code should not be relevant for 
implementing this.

> Verify the datanode directory layout
> 
>
> Key: HDFS-7648
> URL: https://issues.apache.org/jira/browse/HDFS-7648
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: datanode
>Reporter: Tsz Wo Nicholas Sze
>
> HDFS-6482 changed datanode layout to use block ID to determine the directory 
> to store the block.  We should have some mechanism to verify it.  Either 
> DirectoryScanner or block report generation could do the check.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-6673) Add Delimited format supports for PB OIV tool

2015-01-26 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-6673:


bq. The whole point of this tool is to run the oiv on machines that do not have 
the luxury of abundant memory. Can you clarify what point you are trying to 
make?

I think that the point that Andrew is trying to make is that this tool will run 
quickly on machines with more memory, while still being possible to use on 
machines with less memory.

bq. Can you clarify what the greater functionality are? The Delimiter only 
outputs mtime/atime and other information available from legacy fsimage.

Andrew already commented that "HDFS-6293 doesn't include metadata newer than 
the old format."  As we add more features over time, printing data from the 
legacy fsimage will become less and less useful.  Eventually we will probably 
want to drop support entirely, perhaps in Hadoop 3.0.  There is a maintenance 
burden associated with maintaining two image formats.

> Add Delimited format supports for PB OIV tool
> -
>
> Key: HDFS-6673
> URL: https://issues.apache.org/jira/browse/HDFS-6673
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Affects Versions: 2.4.0
>Reporter: Lei (Eddy) Xu
>Assignee: Lei (Eddy) Xu
>Priority: Minor
> Attachments: HDFS-6673.000.patch, HDFS-6673.001.patch, 
> HDFS-6673.002.patch, HDFS-6673.003.patch, HDFS-6673.004.patch, 
> HDFS-6673.005.patch, HDFS-6673.006.patch
>
>
> The new oiv tool, which is designed for Protobuf fsimage, lacks a few 
> features supported in the old {{oiv}} tool. 
> This task adds supports of _Delimited_ processor to the oiv tool. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (HDFS-7341) Add initial snapshot support based on pipeline recovery

2015-01-26 Thread Colin Patrick McCabe (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7341?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Colin Patrick McCabe resolved HDFS-7341.

Resolution: Duplicate

Duplicate of HDFS-3107

> Add initial snapshot support based on pipeline recovery
> ---
>
> Key: HDFS-7341
> URL: https://issues.apache.org/jira/browse/HDFS-7341
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode, namenode
>Reporter: Colin Patrick McCabe
> Attachments: HDFS-3107_Nov3.patch, editsStored_Nov3, 
> editsStored_Nov3.xml
>
>
> Add initial snapshot support based on pipeline recovery.  This iteration does 
> not support snapshots or rollback.  This support will be added in the 
> HDFS-3107 branch by later subtasks.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7577) Add additional headers that includes need by Windows

2015-01-26 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-7577:


cpuid.h: we need an #error when this isn't x86, to explain why compilation is 
failing (due to the unimplemented function)

+1 once that's resolved

> Add additional headers that includes need by Windows
> 
>
> Key: HDFS-7577
> URL: https://issues.apache.org/jira/browse/HDFS-7577
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs-client
>Reporter: Thanh Do
>Assignee: Thanh Do
> Attachments: HDFS-7577-branch-HDFS-6994-0.patch, 
> HDFS-7577-branch-HDFS-6994-1.patch
>
>
> This jira involves adding a list of (mostly dummy) headers that available in 
> POSIX systems, but not in Windows. One step towards making libhdfs3 built in 
> Windows.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7584) Enable Quota Support for Storage Types (SSD)

2015-01-26 Thread Arpit Agarwal (JIRA)

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

Arpit Agarwal commented on HDFS-7584:
-

Hi [~xyao], thanks for picking up this non-trivial task. Here is some initial 
feedback on the patch:

# StorageType: You don't need a new constructor parameter for 
{{supportQuotaByStorageType}}. You can just use {{!isTransient}}. We can add 
the flexibility in the future if needed.
# {{StorageType.isStorageTypeChosen}} can be removed. It looks out of place in 
its public interface.
# {{StorageType.getQuotableTypes}} is oddly named. Perhaps 
{{typesSupportingQuota}} is better?
# You don't need the {{StorageTypeProto.NONE}} or the default value for it in 
{{SetQuotaRequestProto}}. Since it is an optional field we can check for its 
presence with {{req.hasStorageType}} in {{ClientNamenodeProtocolPB.setQuota}}.
# Similarly {{ClientNamenodeProtocolTranslatorPB.setQuota}} should not invoke 
{{setStorageType}} if the {{type}} parameter is null.
# The loop in {{StorageType.parseStorageType(String)}} can be replaced with 
{{StorageType.valueOf(s.toUpperCase())}} right?
# The loop in {{StorageType.parseStorageType(int)}} is not necessary. You can 
just use {{StorageType.values()[i]}} instead. {{StorageType.values[]}} can be 
cached in a static context to avoid allocating it repeatedly. The 'return null' 
fallback will be lost and we will bubble up an exception instead. I checked the 
callers and think that will be fine.

More feedback to follow.

> Enable Quota Support for Storage Types (SSD) 
> -
>
> Key: HDFS-7584
> URL: https://issues.apache.org/jira/browse/HDFS-7584
> Project: Hadoop HDFS
>  Issue Type: New Feature
>  Components: datanode, namenode
>Reporter: Xiaoyu Yao
>Assignee: Xiaoyu Yao
> Attachments: HDFS-7584 Quota by Storage Type - 01202015.pdf, 
> HDFS-7584.0.patch, HDFS-7584.1.patch, HDFS-7584.2.patch, HDFS-7584.3.patch, 
> HDFS-7584.4.patch, editsStored
>
>
> Phase II of the Heterogeneous storage features have completed by HDFS-6584. 
> This JIRA is opened to enable Quota support of different storage types in 
> terms of storage space usage. This is more important for certain storage 
> types such as SSD as it is precious and more performant. 
> As described in the design doc of HDFS-5682, we plan to add new 
> quotaByStorageType command and new name node RPC protocol for it. The quota 
> by storage type feature is applied to HDFS directory level similar to 
> traditional HDFS space quota. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (HDFS-7654) TestFileTruncate#testTruncateEditLogLoad fails intermittently

2015-01-26 Thread Konstantin Shvachko (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7654?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konstantin Shvachko resolved HDFS-7654.
---
Resolution: Duplicate

Full story goes like that.
At the time of creation this jira was a duplicate of HDFS-7611.
The investigation of HDFS-7611 determined  that TestFileTruncate was failing 
because of the snapshot bug described there.
Then Nicholas suggested to fix TestFileTruncate in a way that it avoids this 
bug, which was achieved by HDFS-7676.
So closing this as a duplicate of HDFS-7676.

> TestFileTruncate#testTruncateEditLogLoad fails intermittently
> -
>
> Key: HDFS-7654
> URL: https://issues.apache.org/jira/browse/HDFS-7654
> Project: Hadoop HDFS
>  Issue Type: Bug
>Reporter: Colin Patrick McCabe
>
> TestFileTruncate#testTruncateEditLogLoad fails intermittently with an error 
> message like this: 
> {code}
> java.io.IOException: Timed out waiting for Mini HDFS Cluster to start
>   at 
> org.apache.hadoop.hdfs.MiniDFSCluster.waitClusterUp(MiniDFSCluster.java:1194)
>   at 
> org.apache.hadoop.hdfs.MiniDFSCluster.restartNameNode(MiniDFSCluster.java:1819)
>   at 
> org.apache.hadoop.hdfs.MiniDFSCluster.restartNameNode(MiniDFSCluster.java:1780)
>   at 
> org.apache.hadoop.hdfs.server.namenode.TestFileTruncate.testTruncateEditLogLoad(TestFileTruncate.java:500)
> {code}
> Also, FSNamesystem ERROR logs appear in the test run log even when the test 
> passes.  Example:
> {code}
> 2015-01-21 18:52:36,474 ERROR namenode.NameNode 
> (DirectoryWithQuotaFeature.java:checkDiskspace(82)) - BUG: Inconsistent 
> diskspace for directory /test. Cached = 48 != Computed = 54
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-7682) {{DistributedFileSystem#getFileChecksum}} of a snapshotted file includes non-snapshotted content

2015-01-26 Thread Charles Lamb (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7682?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Charles Lamb updated HDFS-7682:
---
Status: Patch Available  (was: Open)

> {{DistributedFileSystem#getFileChecksum}} of a snapshotted file includes 
> non-snapshotted content
> 
>
> Key: HDFS-7682
> URL: https://issues.apache.org/jira/browse/HDFS-7682
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.7.0
>Reporter: Charles Lamb
>Assignee: Charles Lamb
> Attachments: HDFS-7682.000.patch
>
>
> DistributedFileSystem#getFileChecksum of a snapshotted file includes 
> non-snapshotted content.
> The reason why this happens is because DistributedFileSystem#getFileChecksum 
> simply calculates the checksum of all of the CRCs from the blocks in the 
> file. But, in the case of a snapshotted file, we don't want to include data 
> in the checksum that was appended to the last block in the file after the 
> snapshot was taken.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-7682) {{DistributedFileSystem#getFileChecksum}} of a snapshotted file includes non-snapshotted content

2015-01-26 Thread Charles Lamb (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7682?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Charles Lamb updated HDFS-7682:
---
Attachment: HDFS-7682.000.patch

Posting patch for a jenkins run.

> {{DistributedFileSystem#getFileChecksum}} of a snapshotted file includes 
> non-snapshotted content
> 
>
> Key: HDFS-7682
> URL: https://issues.apache.org/jira/browse/HDFS-7682
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.7.0
>Reporter: Charles Lamb
>Assignee: Charles Lamb
> Attachments: HDFS-7682.000.patch
>
>
> DistributedFileSystem#getFileChecksum of a snapshotted file includes 
> non-snapshotted content.
> The reason why this happens is because DistributedFileSystem#getFileChecksum 
> simply calculates the checksum of all of the CRCs from the blocks in the 
> file. But, in the case of a snapshotted file, we don't want to include data 
> in the checksum that was appended to the last block in the file after the 
> snapshot was taken.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HDFS-7682) {{DistributedFileSystem#getFileChecksum}} of a snapshotted file includes non-snapshotted content

2015-01-26 Thread Charles Lamb (JIRA)
Charles Lamb created HDFS-7682:
--

 Summary: {{DistributedFileSystem#getFileChecksum}} of a 
snapshotted file includes non-snapshotted content
 Key: HDFS-7682
 URL: https://issues.apache.org/jira/browse/HDFS-7682
 Project: Hadoop HDFS
  Issue Type: Bug
Affects Versions: 2.7.0
Reporter: Charles Lamb
Assignee: Charles Lamb


DistributedFileSystem#getFileChecksum of a snapshotted file includes 
non-snapshotted content.

The reason why this happens is because DistributedFileSystem#getFileChecksum 
simply calculates the checksum of all of the CRCs from the blocks in the file. 
But, in the case of a snapshotted file, we don't want to include data in the 
checksum that was appended to the last block in the file after the snapshot was 
taken.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7630) TestConnCache hardcode block size without considering native OS

2015-01-26 Thread Arpit Agarwal (JIRA)

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

Arpit Agarwal commented on HDFS-7630:
-

HI [~sam liu], it is hard to review and commit many trivial patches.

It would really help if HDFS-7624 through HDFS-7630 could be combined into a 
single Jira with a consolidated patch.

I think the change looks fine, I'd like to verify it on Windows before I +1.

> TestConnCache hardcode block size without considering native OS
> ---
>
> Key: HDFS-7630
> URL: https://issues.apache.org/jira/browse/HDFS-7630
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: test
>Reporter: sam liu
>Assignee: sam liu
> Attachments: HDFS-7630.001.patch
>
>
> TestConnCache hardcode block size with 'BLOCK_SIZE = 4096', however it's 
> incorrect on some platforms. For example, on power platform, the correct 
> value is 65536.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HDFS-7681) Fix ReplicaInputStream constructor to take InputStreams

2015-01-26 Thread Joe Pallas (JIRA)
Joe Pallas created HDFS-7681:


 Summary: Fix ReplicaInputStream constructor to take InputStreams
 Key: HDFS-7681
 URL: https://issues.apache.org/jira/browse/HDFS-7681
 Project: Hadoop HDFS
  Issue Type: Sub-task
  Components: datanode
Affects Versions: 3.0.0
Reporter: Joe Pallas
Assignee: Joe Pallas


As noted in HDFS-5194, the constructor for {{ReplicaInputStream}} takes 
{{FileDescriptor}} s that are immediately turned into {{InputStream}} s, while 
the callers already have {{FileInputStream}} s from which they extract 
{{FileDescriptor}} s.  This seems to have been done as part of a large set of 
changes to appease findbugs.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HDFS-7680) Support dataset-specific choice of short circuit implementation

2015-01-26 Thread Joe Pallas (JIRA)
Joe Pallas created HDFS-7680:


 Summary: Support dataset-specific choice of short circuit 
implementation
 Key: HDFS-7680
 URL: https://issues.apache.org/jira/browse/HDFS-7680
 Project: Hadoop HDFS
  Issue Type: Sub-task
  Components: datanode, dfsclient, hdfs-client
Affects Versions: 3.0.0
Reporter: Joe Pallas
Assignee: Joe Pallas


As described in HDFS-5194, the current support for short circuit reading is 
tightly coupled to the default Dataset implementation.  Since alternative 
implementations of the FsDatasetSpi may use a different short circuit pathway, 
there needs to be a way for the client to acquire the right kind of BlockReader.

Reviewing some considerations:
Today, there is only one dataset per datanode (with multiple volumes).  Is that 
likely to change?
Can there be multiple datanodes local to a client?
Is it okay to assume that the client and datanode share configuration?  More 
broadly, how should the client discover the appropriate short-circuit 
implementation?




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7312) Update DistCp v1 to optionally not use tmp location

2015-01-26 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-7312:
-

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12683251/HDFS-7312.007.patch
  against trunk revision 21d5599.

{color:red}-1 patch{color}.  The patch command could not apply the patch.

Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/9329//console

This message is automatically generated.

> Update DistCp v1 to optionally not use tmp location
> ---
>
> Key: HDFS-7312
> URL: https://issues.apache.org/jira/browse/HDFS-7312
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: tools
>Affects Versions: 2.5.1
>Reporter: Joseph Prosser
>Assignee: Joseph Prosser
>Priority: Minor
> Attachments: HDFS-7312.001.patch, HDFS-7312.002.patch, 
> HDFS-7312.003.patch, HDFS-7312.004.patch, HDFS-7312.005.patch, 
> HDFS-7312.006.patch, HDFS-7312.007.patch, HDFS-7312.patch
>
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> DistCp v1 currently copies files to a tmp location and then renames that to 
> the specified destination.  This can cause performance issues on filesystems 
> such as S3.  A -skiptmp flag will be added to bypass this step and copy 
> directly to the destination.  This feature mirrors a similar one added to 
> HBase ExportSnapshot 
> [HBASE-9|https://issues.apache.org/jira/browse/HBASE-9]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HDFS-7312) Update DistCp v1 to optionally not use tmp location

2015-01-26 Thread Joseph Prosser (JIRA)

 [ 
https://issues.apache.org/jira/browse/HDFS-7312?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Joseph Prosser updated HDFS-7312:
-
Status: Patch Available  (was: Open)

> Update DistCp v1 to optionally not use tmp location
> ---
>
> Key: HDFS-7312
> URL: https://issues.apache.org/jira/browse/HDFS-7312
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: tools
>Affects Versions: 2.5.1
>Reporter: Joseph Prosser
>Assignee: Joseph Prosser
>Priority: Minor
> Attachments: HDFS-7312.001.patch, HDFS-7312.002.patch, 
> HDFS-7312.003.patch, HDFS-7312.004.patch, HDFS-7312.005.patch, 
> HDFS-7312.006.patch, HDFS-7312.007.patch, HDFS-7312.patch
>
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> DistCp v1 currently copies files to a tmp location and then renames that to 
> the specified destination.  This can cause performance issues on filesystems 
> such as S3.  A -skiptmp flag will be added to bypass this step and copy 
> directly to the destination.  This feature mirrors a similar one added to 
> HBase ExportSnapshot 
> [HBASE-9|https://issues.apache.org/jira/browse/HBASE-9]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7676) Fix TestFileTruncate to avoid bug of HDFS-7611

2015-01-26 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-7676:


[~shv], are this JIRA and HDFS-7654 duplicates?  Should we close HDFS-7654?

> Fix TestFileTruncate to avoid bug of HDFS-7611
> --
>
> Key: HDFS-7676
> URL: https://issues.apache.org/jira/browse/HDFS-7676
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: test
>Affects Versions: 3.0.0
>Reporter: Konstantin Shvachko
>Assignee: Konstantin Shvachko
> Fix For: 2.7.0
>
> Attachments: HDFS-7676.patch
>
>
> This is to fix testTruncateEditLogLoad(), which is failing due to the bug 
> described in HDFS-7611.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7677) DistributedFileSystem#truncate should resolve symlinks

2015-01-26 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-7677:


I think we should support this, just for consistency with the other operations. 
 But keep in mind that symlinks are hard-disabled in branch-2 because of 
security and other issues, and that's probably not going to change any time 
soon.  See HADOOP-10019 for details.

> DistributedFileSystem#truncate should resolve symlinks
> --
>
> Key: HDFS-7677
> URL: https://issues.apache.org/jira/browse/HDFS-7677
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode, namenode
>Reporter: Yi Liu
>Assignee: Yi Liu
> Attachments: HDFS-7677.001.patch
>
>
> We should resolve the symlinks in DistributedFileSystem#truncate as we do for 
> {{create}}, {{open}}, {{append}} and so on, I don't see any reason not 
> support it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7675) Unused member DFSClient.spanReceiverHost

2015-01-26 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-7675:


It's not redundant.  Calling {{SpanReceiverHost#getInstance}} initializes 
{{SpanReceiverHost#SingletonHolder#INSTANCE}}, which is needed for tracing to 
operate.  This code was taken from HBase, which has a similar construct for 
tracing.

I agree that we could probably skip storing the {{SpanReceiverHost}} inside 
{{DFSClient}}, as long as there was a comment about why we were calling 
{{getInstance}}.

> Unused member DFSClient.spanReceiverHost
> 
>
> Key: HDFS-7675
> URL: https://issues.apache.org/jira/browse/HDFS-7675
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: dfsclient
>Affects Versions: 3.0.0
>Reporter: Konstantin Shvachko
>
> DFSClient.spanReceiverHost is initialised but never used. Could be redundant.
> This was introduced by HDFS-7055.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7411) Refactor and improve decommissioning logic into DecommissionManager

2015-01-26 Thread Andrew Wang (JIRA)

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

Andrew Wang commented on HDFS-7411:
---

This is the same testIncludeByRegistrationName failure in HDFS-7527. I think my 
test improvements make it fail reliably instead of flakily (which is correct, 
since it's broken), but maybe this should be @Ignore'd in this patch.

> Refactor and improve decommissioning logic into DecommissionManager
> ---
>
> Key: HDFS-7411
> URL: https://issues.apache.org/jira/browse/HDFS-7411
> Project: Hadoop HDFS
>  Issue Type: Improvement
>Affects Versions: 2.5.1
>Reporter: Andrew Wang
>Assignee: Andrew Wang
> Attachments: hdfs-7411.001.patch, hdfs-7411.002.patch, 
> hdfs-7411.003.patch, hdfs-7411.004.patch, hdfs-7411.005.patch, 
> hdfs-7411.006.patch, hdfs-7411.007.patch, hdfs-7411.008.patch
>
>
> Would be nice to split out decommission logic from DatanodeManager to 
> DecommissionManager.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7339) Allocating and persisting block groups in NameNode

2015-01-26 Thread Tsz Wo Nicholas Sze (JIRA)

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

Tsz Wo Nicholas Sze commented on HDFS-7339:
---

> Are you proposing we enforce 4 zero bits for all blocks, striped or regular?

No, only for the first block in a block group.  We have a few choices:

# Allocate IDs for normal blocks as usual.  Allocate *consecutive IDs for 
blocks in a group*.
#* e.g. allocateBlock -> 0x301, allocateBlock -> 0x302, allocateBlockGroup -> 
0x303..0x30B, allocateBlockGroup -> 0x30C..0x314, allocateBlock -> 0x315, ...
#* Since the block IDs in a block group could cross low 4-bit boundary, 
BlocksMap lookup need to be executed twice.  e.g. for 0x312, first try 
lookup(0x312) which returns null, and then try lookup(0x30F) which returns the 
block group with 0x30C first block.
#* *All lookup need to be executed twice!*  It does not seems a good solution 
(so that I did not mention it previously.)
# Allocate IDs for normal blocks as usual.  Allocate consecutive IDs for blocks 
in a group and *skip to next zero if it crosses the low 4-bit boundary*.
#* e.g. allocateBlock -> 0x301, allocateBlock -> 0x302, allocateBlockGroup -> 
0x303..0x30B, allocateBlockGroup -> 0x310..0x318, allocateBlock -> 0x319, ...
#* Only one lookup is needed.
# Allocate IDs for normal blocks as usual.  Allocate consecutive IDs for blocks 
in a group and *always skip to next zero low 4-bit*.
#* e.g. allocateBlock -> 0x301, allocateBlock -> 0x302, allocateBlockGroup -> 
0x310..0x308, allocateBlockGroup -> 0x320..0x328, allocateBlock -> 0x329, ...
#* The low 4-bit of the first block ID in block group is always zero.
# Allocate IDs for normal blocks and *skip if the low 4-bit is zero*.  Allocate 
consecutive IDs for blocks in a group and always skip to next zero low 4-bit.
#* e.g. allocateBlock -> 0x301, allocateBlock -> 0x302, allocateBlockGroup -> 
0x310..0x308, allocateBlockGroup -> 0x320..0x328, allocateBlock -> 0x329, 
allocateBlock -> 0x32A, allocateBlock -> 0x32B, allocateBlock -> 0x32C, 
allocateBlock -> 0x32D, allocateBlock -> 0x32E, allocateBlock -> 0x32F, 
*allocateBlock -> 0x331*, ...
#* If the low 4-bit of an ID is zero, it must be the first block in a block 
group.
# Allocate IDs for normal blocks, skip if the low 4-bit is zero and *skip to 
next low 4-bit if the previous allocation is for a block group*.  Allocate 
consecutive IDs for blocks in a group and always skip to next zero low 4-bit.
#* e.g. allocateBlock -> 0x301, allocateBlock -> 0x302, allocateBlockGroup -> 
0x310..0x308, allocateBlockGroup -> 0x320..0x328, *allocateBlock -> 0x331*, ...
#* Normal blocks and blocks in block group cannot share the same high 60-bit 
prefix.
# The same as before except that *do not skip if the low 4-bit is zero*.
#* e.g. allocateBlock -> 0x301, allocateBlock -> 0x302, allocateBlockGroup -> 
0x310..0x308, allocateBlockGroup -> 0x320..0x328, *allocateBlock -> 0x330*, ...
#* Normal block ID could have zero low 4-bit.


Which one is the best?


> Allocating and persisting block groups in NameNode
> --
>
> Key: HDFS-7339
> URL: https://issues.apache.org/jira/browse/HDFS-7339
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Zhe Zhang
>Assignee: Zhe Zhang
> Attachments: HDFS-7339-001.patch, HDFS-7339-002.patch, 
> HDFS-7339-003.patch, HDFS-7339-004.patch, HDFS-7339-005.patch, 
> HDFS-7339-006.patch, Meta-striping.jpg, NN-stripping.jpg
>
>
> All erasure codec operations center around the concept of _block group_; they 
> are formed in initial encoding and looked up in recoveries and conversions. A 
> lightweight class {{BlockGroup}} is created to record the original and parity 
> blocks in a coding group, as well as a pointer to the codec schema (pluggable 
> codec schemas will be supported in HDFS-7337). With the striping layout, the 
> HDFS client needs to operate on all blocks in a {{BlockGroup}} concurrently. 
> Therefore we propose to extend a file’s inode to switch between _contiguous_ 
> and _striping_ modes, with the current mode recorded in a binary flag. An 
> array of BlockGroups (or BlockGroup IDs) is added, which remains empty for 
> “traditional” HDFS files with contiguous block layout.
> The NameNode creates and maintains {{BlockGroup}} instances through the new 
> {{ECManager}} component; the attached figure has an illustration of the 
> architecture. As a simple example, when a {_Striping+EC_} file is created and 
> written to, it will serve requests from the client to allocate new 
> {{BlockGroups}} and store them under the {{INodeFile}}. In the current phase, 
> {{BlockGroups}} are allocated both in initial online encoding and in the 
> conversion from replication to EC. {{ECManager}} also facilitates the lookup 
> of {{BlockGroup}} information fo

[jira] [Commented] (HDFS-7677) DistributedFileSystem#truncate should resolve symlinks

2015-01-26 Thread Konstantin Shvachko (JIRA)

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

Konstantin Shvachko commented on HDFS-7677:
---

I don't see it in my design, which is this one
https://issues.apache.org/jira/secure/attachment/12679075/HDFS_truncate.pdf

I don't see reasons not supporting it either.

> DistributedFileSystem#truncate should resolve symlinks
> --
>
> Key: HDFS-7677
> URL: https://issues.apache.org/jira/browse/HDFS-7677
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode, namenode
>Reporter: Yi Liu
>Assignee: Yi Liu
> Attachments: HDFS-7677.001.patch
>
>
> We should resolve the symlinks in DistributedFileSystem#truncate as we do for 
> {{create}}, {{open}}, {{append}} and so on, I don't see any reason not 
> support it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7665) Add definition of truncate preconditions/postconditions to filesystem specification

2015-01-26 Thread Konstantin Shvachko (JIRA)

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

Konstantin Shvachko commented on HDFS-7665:
---

Makes sense. Do you want to implement this? Seems like you had experience.

> Add definition of truncate preconditions/postconditions to filesystem 
> specification
> ---
>
> Key: HDFS-7665
> URL: https://issues.apache.org/jira/browse/HDFS-7665
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: documentation
>Affects Versions: 3.0.0
>Reporter: Steve Loughran
> Fix For: 3.0.0
>
>
> With the addition of a major new feature to filesystems, the filesystem 
> specification in hadoop-common/site is now out of sync. 
> This means that
> # there's no strict specification of what it should do
> # you can't derive tests from that specification
> # other people trying to implement the API will have to infer what to do from 
> the HDFS source
> # there's no way to decide whether or not the HDFS implementation does what 
> it is intended.
> # without matching tests against the raw local FS, differences between the 
> HDFS impl and the Posix standard one won't be caught until it is potentially 
> too late to fix.
> The operation should be relatively easy to define (after a truncate, the 
> files bytes [0...len-1] must equal the original bytes, length(file)==len, etc)
> The truncate tests already written could then be pulled up into contract 
> tests which any filesystem implementation can run against.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7666) Datanode blockId layout upgrade threads should be daemon thread

2015-01-26 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-7666:


Hi Rakesh,

I'm not sure why we would want the blockID upgrade threads to be daemon 
threads.  Daemon threads don't block the JVM from exiting if they are the only 
remaining threads.  But we don't expect the JVM to while an upgrade is still 
incomplete.  In fact, if it does, we are in big trouble.

> Datanode blockId layout upgrade threads should be daemon thread
> ---
>
> Key: HDFS-7666
> URL: https://issues.apache.org/jira/browse/HDFS-7666
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: datanode
>Reporter: Rakesh R
>Assignee: Rakesh R
> Attachments: HDFS-7666-v1.patch
>
>
> This jira is to mark the layout upgrade thread as daemon thread.
> {code}
>  int numLinkWorkers = datanode.getConf().getInt(
>  DFSConfigKeys.DFS_DATANODE_BLOCK_ID_LAYOUT_UPGRADE_THREADS_KEY,
>  DFSConfigKeys.DFS_DATANODE_BLOCK_ID_LAYOUT_UPGRADE_THREADS);
> ExecutorService linkWorkers = 
> Executors.newFixedThreadPool(numLinkWorkers);
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7659) We should check the new length of truncate can't be a negative value.

2015-01-26 Thread Konstantin Shvachko (JIRA)

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

Konstantin Shvachko commented on HDFS-7659:
---

No problem. I was just trying to find the most effective way to get it done.

> We should check the new length of truncate can't be a negative value.
> -
>
> Key: HDFS-7659
> URL: https://issues.apache.org/jira/browse/HDFS-7659
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode, namenode
>Reporter: Yi Liu
>Assignee: Yi Liu
> Fix For: 2.7.0
>
> Attachments: HDFS-7659-branch2.patch, HDFS-7659.001.patch, 
> HDFS-7659.002.patch, HDFS-7659.003.patch
>
>
> It's obvious that we should check the new length of truncate can't be a 
> negative value.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7339) Allocating and persisting block groups in NameNode

2015-01-26 Thread Zhe Zhang (JIRA)

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

Zhe Zhang commented on HDFS-7339:
-

bq. If we enforce block id allocation so that the lower 4-bit of the first ID 
must be zeros, then it is very similar to the scheme propused in the design doc 
except there is no notation of block group in the block IDs.
[~szetszwo] Are you proposing we enforce 4 zero bits for _all_ blocks, striped 
or regular? It seems to shrink the usable ID space by quite a lot. I think we 
can still have 2 separate ID generators, both generating regular block IDs. 
This way we are also getting rid of block group IDs. Thanks again for the 
in-depth review and advice.

> Allocating and persisting block groups in NameNode
> --
>
> Key: HDFS-7339
> URL: https://issues.apache.org/jira/browse/HDFS-7339
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Zhe Zhang
>Assignee: Zhe Zhang
> Attachments: HDFS-7339-001.patch, HDFS-7339-002.patch, 
> HDFS-7339-003.patch, HDFS-7339-004.patch, HDFS-7339-005.patch, 
> HDFS-7339-006.patch, Meta-striping.jpg, NN-stripping.jpg
>
>
> All erasure codec operations center around the concept of _block group_; they 
> are formed in initial encoding and looked up in recoveries and conversions. A 
> lightweight class {{BlockGroup}} is created to record the original and parity 
> blocks in a coding group, as well as a pointer to the codec schema (pluggable 
> codec schemas will be supported in HDFS-7337). With the striping layout, the 
> HDFS client needs to operate on all blocks in a {{BlockGroup}} concurrently. 
> Therefore we propose to extend a file’s inode to switch between _contiguous_ 
> and _striping_ modes, with the current mode recorded in a binary flag. An 
> array of BlockGroups (or BlockGroup IDs) is added, which remains empty for 
> “traditional” HDFS files with contiguous block layout.
> The NameNode creates and maintains {{BlockGroup}} instances through the new 
> {{ECManager}} component; the attached figure has an illustration of the 
> architecture. As a simple example, when a {_Striping+EC_} file is created and 
> written to, it will serve requests from the client to allocate new 
> {{BlockGroups}} and store them under the {{INodeFile}}. In the current phase, 
> {{BlockGroups}} are allocated both in initial online encoding and in the 
> conversion from replication to EC. {{ECManager}} also facilitates the lookup 
> of {{BlockGroup}} information for block recovery work.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7677) DistributedFileSystem#truncate should resolve symlinks

2015-01-26 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-7677:
-

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12694546/HDFS-7677.001.patch
  against trunk revision 7b82c4a.

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:green}+1 tests included{color}.  The patch appears to include 1 new 
or modified test files.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 javadoc{color}.  There were no new javadoc warning messages.

{color:green}+1 eclipse:eclipse{color}.  The patch built with 
eclipse:eclipse.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 2.0.3) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:red}-1 core tests{color}.  The patch failed these unit tests in 
hadoop-hdfs-project/hadoop-hdfs:

  
org.apache.hadoop.hdfs.server.namenode.snapshot.TestOpenFilesWithSnapshot
  org.apache.hadoop.hdfs.TestDecommission
  org.apache.hadoop.hdfs.server.datanode.TestBlockScanner

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/9328//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/9328//console

This message is automatically generated.

> DistributedFileSystem#truncate should resolve symlinks
> --
>
> Key: HDFS-7677
> URL: https://issues.apache.org/jira/browse/HDFS-7677
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode, namenode
>Reporter: Yi Liu
>Assignee: Yi Liu
> Attachments: HDFS-7677.001.patch
>
>
> We should resolve the symlinks in DistributedFileSystem#truncate as we do for 
> {{create}}, {{open}}, {{append}} and so on, I don't see any reason not 
> support it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7577) Add additional headers that includes need by Windows

2015-01-26 Thread Thanh Do (JIRA)

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

Thanh Do commented on HDFS-7577:


Hi [~cmccabe]. Could please you take a look at the new patch? I really like to 
get this in so that I can start the next patch, which depends on this one. 
Thank you.

> Add additional headers that includes need by Windows
> 
>
> Key: HDFS-7577
> URL: https://issues.apache.org/jira/browse/HDFS-7577
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs-client
>Reporter: Thanh Do
>Assignee: Thanh Do
> Attachments: HDFS-7577-branch-HDFS-6994-0.patch, 
> HDFS-7577-branch-HDFS-6994-1.patch
>
>
> This jira involves adding a list of (mostly dummy) headers that available in 
> POSIX systems, but not in Windows. One step towards making libhdfs3 built in 
> Windows.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HDFS-7224) Allow reuse of NN connections via webhdfs

2015-01-26 Thread Hudson (JIRA)

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

Hudson commented on HDFS-7224:
--

SUCCESS: Integrated in Hadoop-trunk-Commit #6930 (See 
[https://builds.apache.org/job/Hadoop-trunk-Commit/6930/])
 HDFS-7224. Allow reuse of NN connections via webhdfs. Contributed by Eric 
Payne (kihwal: rev 2b0fa20f69417326a92beac10ffa072db2616e73)
* hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* 
hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/web/TestFSMainOperationsWebHdfs.java
* 
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java


> Allow reuse of NN connections via webhdfs
> -
>
> Key: HDFS-7224
> URL: https://issues.apache.org/jira/browse/HDFS-7224
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: webhdfs
>Affects Versions: 2.5.0
>Reporter: Eric Payne
>Assignee: Eric Payne
> Fix For: 2.7.0
>
> Attachments: HDFS-7224.v1.201410301923.txt, 
> HDFS-7224.v2.201410312033.txt, HDFS-7224.v3.txt, HDFS-7224.v4.txt
>
>
> In very large clusters, the webhdfs client could get bind exceptions because 
> it runs out of ephemeral
> ports. This could happen when using webhdfs to talk to the NN in order to do 
> list globbing of a
> huge amount of files.
> WebHdfsFileSystem#jsonParse gets the input/error stream from the connection,
> but never closes the stream. Since it's not closed, the JVM thinks the stream 
> may still
> be transferring data, so the next time through this code, it has to get a new 
> connection
> rather than reusing an existing one. 
> The lack of connection reuse has poor latency and adds too much overhead to 
> the NN.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


  1   2   >