功能: 把一个temporary副本转换成RBW副本。
方法的参数: 正在被转换成Rbw状态的的Temporary状态副本。
调用场景: datanode接收一个块的数据完成时,如果stage处于BlockConstructionStage.TRANSFER_RBW
,那么就需要把temporary副本转换成RBW类型副本。
注意点: TEMPORARY副本用ReplicaInPipeline类表示,处于TEMPORARY状态的副本是不可读的。TEMPORARY副本有自己的tmp目录,如果DataNode重启,会直接删除处于TEMPORARY状态的副本。
一般只有在pipeline recovery时,如果往pipeline里添加新的datanode节点,然后把已经写的块数据transfer到这个新添加到pipeline的datanode上时,才有可能会处于TRANSFER_RBW阶段或者TRANSFER_FINALIZED阶段,相应的方法调用链路是:addDatanode2ExistingPipeline->sendTransferBlock->transferBlock->transferReplicaForPipelineRecovery->(stage的赋值)
todo:dobug。
/**
* Covert a te