HDFS-9426. Rollingupgrade finalization is not backward compatible (Contributed by Kihwal Lee)
(cherry picked from commit c62d42cd8b
)
Conflicts:
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/DatanodeProtocolClientSideTranslatorPB.java
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/DatanodeProtocolServerSideTranslatorPB.java
hadoop-hdfs-project/hadoop-hdfs/src/main/proto/DatanodeProtocol.proto
This commit is contained in:
parent
0348e769ab
commit
9f256d1d71
|
@ -2514,6 +2514,9 @@ Release 2.7.2 - UNRELEASED
|
||||||
HDFS-6481. DatanodeManager#getDatanodeStorageInfos() should check the
|
HDFS-6481. DatanodeManager#getDatanodeStorageInfos() should check the
|
||||||
length of storageIDs. (szetszwo via Arpit Agarwal)
|
length of storageIDs. (szetszwo via Arpit Agarwal)
|
||||||
|
|
||||||
|
HDFS-9426. Rollingupgrade finalization is not backward compatible
|
||||||
|
(Kihwal Lee via vinayakumarb)
|
||||||
|
|
||||||
Release 2.7.1 - 2015-07-06
|
Release 2.7.1 - 2015-07-06
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -163,7 +163,10 @@ public class DatanodeProtocolClientSideTranslatorPB implements
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
RollingUpgradeStatus rollingUpdateStatus = null;
|
RollingUpgradeStatus rollingUpdateStatus = null;
|
||||||
if (resp.hasRollingUpgradeStatus()) {
|
// Use v2 semantics if available.
|
||||||
|
if (resp.hasRollingUpgradeStatusV2()) {
|
||||||
|
rollingUpdateStatus = PBHelperClient.convert(resp.getRollingUpgradeStatusV2());
|
||||||
|
} else if (resp.hasRollingUpgradeStatus()) {
|
||||||
rollingUpdateStatus = PBHelperClient.convert(resp.getRollingUpgradeStatus());
|
rollingUpdateStatus = PBHelperClient.convert(resp.getRollingUpgradeStatus());
|
||||||
}
|
}
|
||||||
return new HeartbeatResponse(cmds, PBHelper.convert(resp.getHaStatus()),
|
return new HeartbeatResponse(cmds, PBHelper.convert(resp.getHaStatus()),
|
||||||
|
|
|
@ -46,6 +46,7 @@ import org.apache.hadoop.hdfs.protocol.proto.DatanodeProtocolProtos.StorageBlock
|
||||||
import org.apache.hadoop.hdfs.protocol.proto.DatanodeProtocolProtos.StorageReceivedDeletedBlocksProto;
|
import org.apache.hadoop.hdfs.protocol.proto.DatanodeProtocolProtos.StorageReceivedDeletedBlocksProto;
|
||||||
import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.DatanodeIDProto;
|
import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.DatanodeIDProto;
|
||||||
import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.LocatedBlockProto;
|
import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.LocatedBlockProto;
|
||||||
|
import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.RollingUpgradeStatusProto;
|
||||||
import org.apache.hadoop.hdfs.protocol.proto.HdfsServerProtos.VersionRequestProto;
|
import org.apache.hadoop.hdfs.protocol.proto.HdfsServerProtos.VersionRequestProto;
|
||||||
import org.apache.hadoop.hdfs.protocol.proto.HdfsServerProtos.VersionResponseProto;
|
import org.apache.hadoop.hdfs.protocol.proto.HdfsServerProtos.VersionResponseProto;
|
||||||
import org.apache.hadoop.hdfs.server.protocol.DatanodeCommand;
|
import org.apache.hadoop.hdfs.server.protocol.DatanodeCommand;
|
||||||
|
@ -132,9 +133,17 @@ public class DatanodeProtocolServerSideTranslatorPB implements
|
||||||
RollingUpgradeStatus rollingUpdateStatus = response
|
RollingUpgradeStatus rollingUpdateStatus = response
|
||||||
.getRollingUpdateStatus();
|
.getRollingUpdateStatus();
|
||||||
if (rollingUpdateStatus != null) {
|
if (rollingUpdateStatus != null) {
|
||||||
builder.setRollingUpgradeStatus(PBHelperClient
|
// V2 is always set for newer datanodes.
|
||||||
.convertRollingUpgradeStatus(rollingUpdateStatus));
|
// To be compatible with older datanodes, V1 is set to null
|
||||||
|
// if the RU was finalized.
|
||||||
|
RollingUpgradeStatusProto rus = PBHelperClient.
|
||||||
|
convertRollingUpgradeStatus(rollingUpdateStatus);
|
||||||
|
builder.setRollingUpgradeStatusV2(rus);
|
||||||
|
if (!rollingUpdateStatus.isFinalized()) {
|
||||||
|
builder.setRollingUpgradeStatus(rus);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.setFullBlockReportLeaseId(response.getFullBlockReportLeaseId());
|
builder.setFullBlockReportLeaseId(response.getFullBlockReportLeaseId());
|
||||||
return builder.build();
|
return builder.build();
|
||||||
}
|
}
|
||||||
|
|
|
@ -227,6 +227,7 @@ message HeartbeatResponseProto {
|
||||||
required NNHAStatusHeartbeatProto haStatus = 2;
|
required NNHAStatusHeartbeatProto haStatus = 2;
|
||||||
optional RollingUpgradeStatusProto rollingUpgradeStatus = 3;
|
optional RollingUpgradeStatusProto rollingUpgradeStatus = 3;
|
||||||
optional uint64 fullBlockReportLeaseId = 4 [ default = 0 ];
|
optional uint64 fullBlockReportLeaseId = 4 [ default = 0 ];
|
||||||
|
optional RollingUpgradeStatusProto rollingUpgradeStatusV2 = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue