Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
3.0.0-beta1
-
None
-
cluster: 3 nodes
os:(Red Hat 2.6.33.20, Red Hat 3.10.0-514.6.1.el7.x86_64, Ubuntu4.4.0-31-generic)
hadoop version: hadoop-3.0.0-beta1
operation: Code review
-
Reviewed
Description
When i read the run() of DataStream class in hdfs-client, i found the following condition code could be more simplify and easy to understand.
DataStreamer.java
// wait for a packet to be sent. long now = Time.monotonicNow(); while ((!shouldStop() && dataQueue.size() == 0 && (stage != BlockConstructionStage.DATA_STREAMING || stage == BlockConstructionStage.DATA_STREAMING && now - lastPacket < halfSocketTimeout)) || doSleep ) {
as described above code segmet, i find the code of stage !=DATA_STREAMING and stage==DATA_STREAMING appear at the same time in one condition, so i think this condition logical not good understanding and should simplify more.