[jira] [Commented] (HADOOP-11996) Native part for ISA-L erasure coder
[ https://issues.apache.org/jira/browse/HADOOP-11996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15189203#comment-15189203 ] Kai Zheng commented on HADOOP-11996: Thanks [~cmccabe] for the thorough and insightful review! bq. Any globals in header files should be defined with the extern keyword, to indicate that they are declarations, not definitions. ... This is a very good educational information for me and will also make the codes more professional. Thanks for your time helping explain this! bq. So pick a .c file to define this global in (probably isal_load.c?) and make the header file use extern... Yes, I will make the change, exactly. bq. In general, we don't check in JNI-generated header files. Given that this is a pre-existing problem, we could fix this in a follow-on JIRA, though. Agree, I can make the desired change in HADOOP-11540 where it can generate the JNI header files according to the Java class files. bq. Is there any reason for having it when that function already exists? Yes the duplication was introduced accidentally and can be avoided, though it's small. bq. Is there a reason to keep coder_util.c and erasure_coder.c ... Similarly, should the contents of erasure_code.c also be merged into coder.c? If not, why not? Ah yeah I have to explain and also make some changes accordingly to make the intention clear. The codes are organized in two minor layers, the first wrapping the ISA-L library and building the main logics for encoding/decoding, and the second is very thin JNI part for the Java coders. Why I would prefer to have the two parts separate? Actually in my initial codes they're all mixed together, then I found it's very hard to debug and fix the logic, from Java to the native stack. Then I separated the main logic things out of the JNI environment, resulting in erasure_code.c, erasure_coder.c and etc, and wrote sample test program separately, run it, debug it and fix it. It made me much easy and lightweight, because I don't have to do the cycle in the Hadoop native building process, which is time consuming. In this way, you can also note that the test program is a very simple one, not any JNI or JVM coupled. So to make this intention clear, I will rename the files so all the JNI related files will be prefixed with {{jni_}}. Hope this also works for you. bq. The distinction between "util" and "coder" seems artificial to me. I agree. I will rename {{coder_util.c}} to {{jni_common.c}}, because the functions contained in it will be shared by at least two coders, RS coder and later XOR coder. bq. The declarations for the dump.c functions are not in dump.h as expected. Instead, they seem to be hiding in erasure_coder.h-- that was unexpected. Yeah, good catch. I will correct it. bq. I don't think there is a good reason to have an include directory. I agree right now it's not so necessary as the codes introduced in the folder isn't large at all, only 20 files or so. > Native part for ISA-L erasure coder > --- > > Key: HADOOP-11996 > URL: https://issues.apache.org/jira/browse/HADOOP-11996 > Project: Hadoop Common > Issue Type: Sub-task > Components: io >Reporter: Kai Zheng >Assignee: Kai Zheng > Attachments: HADOOP-11996-initial.patch, HADOOP-11996-v2.patch, > HADOOP-11996-v3.patch, HADOOP-11996-v4.patch, HADOOP-11996-v5.patch, > HADOOP-11996-v6.patch, HADOOP-11996-v7.patch, HADOOP-11996-v8.patch > > > While working on HADOOP-11540 and etc., it was found useful to write the > basic facilities based on Intel ISA-L library separately from JNI stuff. It's > also easy to debug and troubleshooting, as no JNI or Java stuffs are involved. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HADOOP-11996) Native part for ISA-L erasure coder
[ https://issues.apache.org/jira/browse/HADOOP-11996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15189271#comment-15189271 ] Hadoop QA commented on HADOOP-11996: | (/) *{color:green}+1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 12s {color} | {color:blue} Docker mode activated. {color} | | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s {color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s {color} | {color:green} The patch appears to include 1 new or modified test files. {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 6m 52s {color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 6m 1s {color} | {color:green} trunk passed with JDK v1.8.0_74 {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 6m 44s {color} | {color:green} trunk passed with JDK v1.7.0_95 {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 56s {color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 12s {color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 50s {color} | {color:green} trunk passed with JDK v1.8.0_74 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 5s {color} | {color:green} trunk passed with JDK v1.7.0_95 {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 41s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 5m 51s {color} | {color:green} the patch passed with JDK v1.8.0_74 {color} | | {color:green}+1{color} | {color:green} cc {color} | {color:green} 5m 51s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 5m 51s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 6m 44s {color} | {color:green} the patch passed with JDK v1.7.0_95 {color} | | {color:green}+1{color} | {color:green} cc {color} | {color:green} 6m 44s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 6m 44s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 55s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 13s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s {color} | {color:green} Patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 54s {color} | {color:green} the patch passed with JDK v1.8.0_74 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 4s {color} | {color:green} the patch passed with JDK v1.7.0_95 {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 6m 56s {color} | {color:green} hadoop-common in the patch passed with JDK v1.8.0_74. {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 7m 11s {color} | {color:green} hadoop-common in the patch passed with JDK v1.7.0_95. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 22s {color} | {color:green} Patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 54m 40s {color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Image:yetus/hadoop:0ca8df7 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12792498/HADOOP-11996-v9.patch | | JIRA Issue | HADOOP-11996 | | Optional Tests | asflicense compile cc mvnsite javac unit javadoc mvninstall | | uname | Linux 3d402e96b5ca 3.13.0-36-lowlatency #63-Ubuntu SMP PREEMPT Wed Sep 3 21:56:12 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/hadoop/patchprocess/precommit/personality/provided.sh | | git revision | trunk / 318c9b6 | | Default Java | 1.7.0_95 | | Multi-JDK versions | /usr/lib/jvm/java-8-oracle:1.8.0_74 /usr/lib/jvm/java-7-openjdk-amd64:1.7.0_95 | | JDK v1.7.0_95 Test Results | https://builds.apache.org/job/PreCommit-HADOOP-Build/8835/testReport/ | | modules | C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common | | Console output | https:
[jira] [Commented] (HADOOP-11996) Native part for ISA-L erasure coder
[ https://issues.apache.org/jira/browse/HADOOP-11996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15191498#comment-15191498 ] Colin Patrick McCabe commented on HADOOP-11996: --- Thanks, [~drankye]. This looks good. Looking forward to the follow-on improvements. +1. > Native part for ISA-L erasure coder > --- > > Key: HADOOP-11996 > URL: https://issues.apache.org/jira/browse/HADOOP-11996 > Project: Hadoop Common > Issue Type: Sub-task > Components: io >Reporter: Kai Zheng >Assignee: Kai Zheng > Attachments: HADOOP-11996-initial.patch, HADOOP-11996-v2.patch, > HADOOP-11996-v3.patch, HADOOP-11996-v4.patch, HADOOP-11996-v5.patch, > HADOOP-11996-v6.patch, HADOOP-11996-v7.patch, HADOOP-11996-v8.patch, > HADOOP-11996-v9.patch > > > While working on HADOOP-11540 and etc., it was found useful to write the > basic facilities based on Intel ISA-L library separately from JNI stuff. It's > also easy to debug and troubleshooting, as no JNI or Java stuffs are involved. -- This message was sent by Atlassian JIRA (v6.3.4#6332)