/// <summary>DatanodeDescriptor constructor</summary> /// <param name="nodeID">id of the data node</param> public DatanodeDescriptor(DatanodeID nodeID) : base(nodeID) { decommissioningStatus = new DatanodeDescriptor.DecommissioningStatus(this); pendingCached = new DatanodeDescriptor.CachedBlocksList(this, DatanodeDescriptor.CachedBlocksList.Type .PendingCached); cached = new DatanodeDescriptor.CachedBlocksList(this, DatanodeDescriptor.CachedBlocksList.Type .Cached); pendingUncached = new DatanodeDescriptor.CachedBlocksList(this, DatanodeDescriptor.CachedBlocksList.Type .PendingUncached); // isAlive == heartbeats.contains(this) // This is an optimization, because contains takes O(n) time on Arraylist // A system administrator can tune the balancer bandwidth parameter // (dfs.balance.bandwidthPerSec) dynamically by calling // "dfsadmin -setBalanacerBandwidth <newbandwidth>", at which point the // following 'bandwidth' variable gets updated with the new value for each // node. Once the heartbeat command is issued to update the value on the // specified datanode, this value will be set back to 0. /* Variables for maintaining number of blocks scheduled to be written to * this storage. This count is approximate and might be slightly bigger * in case of errors (e.g. datanode does not report if an error occurs * while writing the block). */ //10min // The number of replication work pending before targets are determined // HB processing can use it to tell if it is the first HB since DN restarted UpdateHeartbeatState(StorageReport.EmptyArray, 0L, 0L, 0, 0, null); }
/// <summary>DatanodeDescriptor constructor</summary> /// <param name="nodeID">id of the data node</param> /// <param name="networkLocation">location of the data node in network</param> public DatanodeDescriptor(DatanodeID nodeID, string networkLocation) : base(nodeID, networkLocation) { decommissioningStatus = new DatanodeDescriptor.DecommissioningStatus(this); pendingCached = new DatanodeDescriptor.CachedBlocksList(this, DatanodeDescriptor.CachedBlocksList.Type .PendingCached); cached = new DatanodeDescriptor.CachedBlocksList(this, DatanodeDescriptor.CachedBlocksList.Type .Cached); pendingUncached = new DatanodeDescriptor.CachedBlocksList(this, DatanodeDescriptor.CachedBlocksList.Type .PendingUncached); UpdateHeartbeatState(StorageReport.EmptyArray, 0L, 0L, 0, 0, null); }