You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "BELUGA BEHR (JIRA)" <ji...@apache.org> on 2018/10/09 02:43:00 UTC
[jira] [Comment Edited] (HADOOP-15830) Server.java Prefer ArrayList
[ https://issues.apache.org/jira/browse/HADOOP-15830?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16642716#comment-16642716 ]
BELUGA BEHR edited comment on HADOOP-15830 at 10/9/18 2:42 AM:
---------------------------------------------------------------
I just submitted another patch which I was a bit more aggressive on. It has all the changes before, plus:
# Removed some instances of "log and throw" error handling. This is an anti-pattern and should be avoided. (try.. catch... log... throw) Log or throw; do not do both.
# Applied some code formatting to improve readability and check-style of certain areas
# Removed a lot of dead white space
# Remove logging guards {{LOG.isDebugEnabled()}} in favor of SLF4j parameter logging
# Removed many instances of logging containing {{Thread.currentThread().getName()}} to record the thread name performing the logging. Emitting the thread name can be configured with the logging framework and does not need to be done explicitly by the caller.
Pick a patch that works for you :)
was (Author: belugabehr):
I just submitted another patch which I was a bit more aggressive on. It has all the changes before, plus:
# Removed some instances of "log and throw" error handling. This is an anti-pattern and should be avoided. (try.. catch... log... throw) Log or throw; do not do both.
# Applied some code formatting to improve readability and check-style of certain areas
# Removed a lot of dead white space
# Remove logging guards {{LOG.isDebugEnabled()}} in favor of SLF4j parameter logging
# Removed many instances of logging containing {{Thread.currentThread().getName()}} to record the thread name performing the logging. Emitting the thread name can be configured with the logging framework and does not need to be done explicitly by the caller.
> 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<RpcCall> responseQueue = call.connection.responseQueue;
> synchronized (responseQueue) {
> Iterator<RpcCall> 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-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org