[jira] [Commented] (HADOOP-15830) Server.java Prefer ArrayList
[ https://issues.apache.org/jira/browse/HADOOP-15830?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16643723#comment-16643723 ] Íñigo Goiri commented on HADOOP-15830: -- This part of the code is pretty close to the core so I'd like to get other reviewers to chime in. In general, I think that fixing all these small issues is valuable and should be done; however, people is reluctant given it makes cherry-picking much harder. Anyway, if we go with this, I would fix the remaining 3 checkstyle issues. > Server.java Prefer ArrayList > > > Key: HADOOP-15830 > URL: https://issues.apache.org/jira/browse/HADOOP-15830 > Project: Hadoop Common > Issue Type: Improvement > Components: ipc >Affects Versions: 3.2.0 >Reporter: BELUGA BEHR >Assignee: BELUGA BEHR >Priority: Minor > Attachments: HADOOP-15830.2.patch, HDFS-13969.1.patch > > > * Prefer ArrayDeque over LinkedList (faster, less memory overhead) > * Address this code: > {code} > // > // Remove calls that have been pending in the responseQueue > // for a long time. > // > private void doPurge(RpcCall call, long now) { > LinkedList responseQueue = call.connection.responseQueue; > synchronized (responseQueue) { > Iterator iter = responseQueue.listIterator(0); > while (iter.hasNext()) { > call = iter.next(); > if (now > call.timestamp + PURGE_INTERVAL) { > closeConnection(call.connection); > break; > } > } > } > } > {code} > It says "Remove calls" (plural) but only one call will be removed because of > the 'break' statement. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org
[jira] [Commented] (HADOOP-15830) Server.java Prefer ArrayList
[ https://issues.apache.org/jira/browse/HADOOP-15830?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16642812#comment-16642812 ] Hadoop QA commented on HADOOP-15830: | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 29s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {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:red}-1{color} | {color:red} test4tests {color} | {color:red} 0m 1s{color} | {color:red} 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} | || || || || {color:brown} trunk Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 20m 14s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 16m 13s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 49s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 18s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 12m 44s{color} | {color:green} branch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 41s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 56s{color} | {color:green} trunk passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 52s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 15m 19s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 15m 19s{color} | {color:green} the patch passed {color} | | {color:orange}-0{color} | {color:orange} checkstyle {color} | {color:orange} 0m 44s{color} | {color:orange} hadoop-common-project/hadoop-common: The patch generated 3 new + 172 unchanged - 30 fixed = 175 total (was 202) {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 4s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 10m 41s{color} | {color:green} patch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 41s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 55s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} unit {color} | {color:green} 8m 39s{color} | {color:green} hadoop-common in the patch passed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 35s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 94m 31s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/hadoop:4b8c2b1 | | JIRA Issue | HADOOP-15830 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12942949/HADOOP-15830.2.patch | | Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle | | uname | Linux 4f875bd07863 4.4.0-133-generic #159-Ubuntu SMP Fri Aug 10 07:31:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/patchprocess/precommit/personality/provided.sh | | git revision | trunk / 08bb6c49 | | maven | version: Apache Maven 3.3.9 | | Default Java | 1.8.0_181 | | findbugs | v3.1.0-RC1 | | checkstyle | https://builds.apache.org/job/PreCommit-HADOOP-Build/15319/artifact/out/diff-checkstyle-hadoop-common-project_hadoop-common.txt | | Test Results | https://builds.apache.org/job/PreCommit-HADOOP-Build/15319/testReport/ | | Max. process+thread count | 1428 (vs. ulimit of 1) | | modules | C: hadoop-common-project/hadoop-common U: hado
[jira] [Commented] (HADOOP-15830) Server.java Prefer ArrayList
[ https://issues.apache.org/jira/browse/HADOOP-15830?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16642679#comment-16642679 ] BELUGA BEHR commented on HADOOP-15830: -- [~elgoiri] Thanks for the look! Ya, I think the assumption is that if an items in the queue are timestamped as they are placed into the queue, so in essence, it is sorted. However, I'm not always sure that is the case. {code} // Item goes on the front of the list call.connection.responseQueue.addFirst(call); if (inHandler) { // timestamp is reset call.timestamp = Time.now(); ... {code} So in this case, it is actually possible that the item at the front of the list has the newest timestamp in the queue. I'm not sure in practice if this happens or if the purge can happen when this is the case, but it would cause the purge loop to bump out immediately and leave expired calls in the queue. Regardless, without a priority queue implementation, it seems best to not assume order. > Server.java Prefer ArrayList > > > Key: HADOOP-15830 > URL: https://issues.apache.org/jira/browse/HADOOP-15830 > Project: Hadoop Common > Issue Type: Improvement > Components: ipc >Affects Versions: 3.2.0 >Reporter: BELUGA BEHR >Assignee: BELUGA BEHR >Priority: Minor > Attachments: HDFS-13969.1.patch > > > * Prefer ArrayDeque over LinkedList (faster, less memory overhead) > * Address this code: > {code} > // > // Remove calls that have been pending in the responseQueue > // for a long time. > // > private void doPurge(RpcCall call, long now) { > LinkedList responseQueue = call.connection.responseQueue; > synchronized (responseQueue) { > Iterator iter = responseQueue.listIterator(0); > while (iter.hasNext()) { > call = iter.next(); > if (now > call.timestamp + PURGE_INTERVAL) { > closeConnection(call.connection); > break; > } > } > } > } > {code} > It says "Remove calls" (plural) but only one call will be removed because of > the 'break' statement. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org
[jira] [Commented] (HADOOP-15830) Server.java Prefer ArrayList
[ https://issues.apache.org/jira/browse/HADOOP-15830?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16642398#comment-16642398 ] Hadoop QA commented on HADOOP-15830: | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 38s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {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:red}-1{color} | {color:red} test4tests {color} | {color:red} 0m 0s{color} | {color:red} 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} | || || || || {color:brown} trunk Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 18m 18s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 14m 30s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 44s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 5s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 11m 24s{color} | {color:green} branch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 35s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 56s{color} | {color:green} trunk passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 45s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 13m 53s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 13m 53s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 44s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 3s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 9m 55s{color} | {color:green} patch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 43s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 1s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} unit {color} | {color:green} 8m 29s{color} | {color:green} hadoop-common in the patch passed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 38s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 87m 11s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/hadoop:4b8c2b1 | | JIRA Issue | HADOOP-15830 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12942839/HDFS-13969.1.patch | | Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle | | uname | Linux 50f4813d31dd 4.4.0-133-generic #159-Ubuntu SMP Fri Aug 10 07:31:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/patchprocess/precommit/personality/provided.sh | | git revision | trunk / 347ea38 | | maven | version: Apache Maven 3.3.9 | | Default Java | 1.8.0_181 | | findbugs | v3.1.0-RC1 | | Test Results | https://builds.apache.org/job/PreCommit-HADOOP-Build/15310/testReport/ | | Max. process+thread count | 1431 (vs. ulimit of 1) | | modules | C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common | | Console output | https://builds.apache.org/job/PreCommit-HADOOP-Build/15310/console | | Powered by | Apache Yetus 0.8.0 http://yetus.apache.org | This message was automatically generated. > Server.java Pref
[jira] [Commented] (HADOOP-15830) Server.java Prefer ArrayList
[ https://issues.apache.org/jira/browse/HADOOP-15830?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16642271#comment-16642271 ] Íñigo Goiri commented on HADOOP-15830: -- When going over the responses, we used to break (I guess assuming that they were in order). That functionality is going, any thoughts there? Everyhting else is pretty much the same. > Server.java Prefer ArrayList > > > Key: HADOOP-15830 > URL: https://issues.apache.org/jira/browse/HADOOP-15830 > Project: Hadoop Common > Issue Type: Improvement > Components: ipc >Affects Versions: 3.2.0 >Reporter: BELUGA BEHR >Assignee: BELUGA BEHR >Priority: Minor > Attachments: HDFS-13969.1.patch > > > * Prefer ArrayDeque over LinkedList (faster, less memory overhead) > * Address this code: > {code} > // > // Remove calls that have been pending in the responseQueue > // for a long time. > // > private void doPurge(RpcCall call, long now) { > LinkedList responseQueue = call.connection.responseQueue; > synchronized (responseQueue) { > Iterator iter = responseQueue.listIterator(0); > while (iter.hasNext()) { > call = iter.next(); > if (now > call.timestamp + PURGE_INTERVAL) { > closeConnection(call.connection); > break; > } > } > } > } > {code} > It says "Remove calls" (plural) but only one call will be removed because of > the 'break' statement. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org