diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 04446f3bc0c..4a35340c171 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -64,6 +64,8 @@ Release 2.0.3-alpha - Unreleased HDFS-4029. GenerationStamp should use an AtomicLong. (eli) + HDFS-4068. DatanodeID and DatanodeInfo member should be private. (eli) + OPTIMIZATIONS BUG FIXES diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/DatanodeID.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/DatanodeID.java index 1a923153402..ad1567fd39b 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/DatanodeID.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/DatanodeID.java @@ -37,12 +37,12 @@ import org.apache.hadoop.classification.InterfaceStability; public class DatanodeID implements Comparable { public static final DatanodeID[] EMPTY_ARRAY = {}; - protected String ipAddr; // IP address - protected String hostName; // hostname - protected String storageID; // unique per cluster storageID - protected int xferPort; // data streaming port - protected int infoPort; // info server port - protected int ipcPort; // IPC server port + private String ipAddr; // IP address + private String hostName; // hostname + private String storageID; // unique per cluster storageID + private int xferPort; // data streaming port + private int infoPort; // info server port + private int ipcPort; // IPC server port public DatanodeID(DatanodeID from) { this(from.getIpAddr(), diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/DatanodeInfo.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/DatanodeInfo.java index 1b2060a5e15..c62faea14a1 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/DatanodeInfo.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/DatanodeInfo.java @@ -37,13 +37,13 @@ import org.apache.hadoop.util.Time; @InterfaceAudience.Private @InterfaceStability.Evolving public class DatanodeInfo extends DatanodeID implements Node { - protected long capacity; - protected long dfsUsed; - protected long remaining; - protected long blockPoolUsed; - protected long lastUpdate; - protected int xceiverCount; - protected String location = NetworkTopology.DEFAULT_RACK; + private long capacity; + private long dfsUsed; + private long remaining; + private long blockPoolUsed; + private long lastUpdate; + private int xceiverCount; + private String location = NetworkTopology.DEFAULT_RACK; // Datanode administrative states public enum AdminStates { @@ -81,8 +81,7 @@ public class DatanodeInfo extends DatanodeID implements Node { this.lastUpdate = from.getLastUpdate(); this.xceiverCount = from.getXceiverCount(); this.location = from.getNetworkLocation(); - this.adminState = from.adminState; - this.hostName = from.hostName; + this.adminState = from.getAdminState(); } public DatanodeInfo(DatanodeID nodeID) { diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java index 27c044454c4..c6b719ce31e 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java @@ -280,11 +280,11 @@ public class DatanodeDescriptor extends DatanodeInfo { } public void resetBlocks() { - this.capacity = 0; - this.remaining = 0; - this.blockPoolUsed = 0; - this.dfsUsed = 0; - this.xceiverCount = 0; + setCapacity(0); + setRemaining(0); + setBlockPoolUsed(0); + setDfsUsed(0); + setXceiverCount(0); this.blockList = null; this.invalidateBlocks.clear(); this.volumeFailures = 0; @@ -307,15 +307,15 @@ public class DatanodeDescriptor extends DatanodeInfo { */ public void updateHeartbeat(long capacity, long dfsUsed, long remaining, long blockPoolUsed, int xceiverCount, int volFailures) { - this.capacity = capacity; - this.dfsUsed = dfsUsed; - this.remaining = remaining; - this.blockPoolUsed = blockPoolUsed; - this.lastUpdate = Time.now(); - this.xceiverCount = xceiverCount; + setCapacity(capacity); + setRemaining(remaining); + setBlockPoolUsed(blockPoolUsed); + setDfsUsed(dfsUsed); + setXceiverCount(xceiverCount); + setLastUpdate(Time.now()); this.volumeFailures = volFailures; this.heartbeatedSinceFailover = true; - rollBlocksScheduled(lastUpdate); + rollBlocksScheduled(getLastUpdate()); } /** diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java index 523d44227a8..d02e3466ec1 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java @@ -550,7 +550,7 @@ public class DatanodeManager { /** * Decommission the node if it is in exclude list. */ - private void checkDecommissioning(DatanodeDescriptor nodeReg, String ipAddr) { + private void checkDecommissioning(DatanodeDescriptor nodeReg) { // If the registered node is in exclude list, then decommission it if (inExcludedHostsList(nodeReg)) { startDecommission(nodeReg); @@ -696,7 +696,7 @@ public class DatanodeManager { // also treat the registration message as a heartbeat heartbeatManager.register(nodeS); - checkDecommissioning(nodeS, dnAddress); + checkDecommissioning(nodeS); return; } @@ -716,7 +716,7 @@ public class DatanodeManager { = new DatanodeDescriptor(nodeReg, NetworkTopology.DEFAULT_RACK); resolveNetworkLocation(nodeDescr); addDatanode(nodeDescr); - checkDecommissioning(nodeDescr, dnAddress); + checkDecommissioning(nodeDescr); // also treat the registration message as a heartbeat // no need to update its timestamp diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/protocol/DatanodeRegistration.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/protocol/DatanodeRegistration.java index b736d1280b0..7815d808d62 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/protocol/DatanodeRegistration.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/protocol/DatanodeRegistration.java @@ -82,9 +82,9 @@ public class DatanodeRegistration extends DatanodeID public String toString() { return getClass().getSimpleName() + "(" + getIpAddr() - + ", storageID=" + storageID - + ", infoPort=" + infoPort - + ", ipcPort=" + ipcPort + + ", storageID=" + getStorageID() + + ", infoPort=" + getInfoPort() + + ", ipcPort=" + getIpcPort() + ", storageInfo=" + storageInfo + ")"; }