Client - DN1 - DN2 - DN3
DN3 send ack:[0][d3]。
DN2 send ack: [从dn2入队到收到dn3的ack耗时,0] [d2,d3]。
DN1 send ack: [pkt从dn1入队到收到dn2的ack耗时,pkt从dn2入队到收到dn3的ack耗时,0] [d1,d2,d3]。
Client receive: 就是DN1发送过来数据。
客户端收到的第一个节点汇报过来的downstream acktime = 花在第二个+花在第三个dn上的时间。
下面图里:
Client收到的downstreamAckTimeNanos值为 52352708300 纳秒,即52.352708秒。为什么这么久?因为我们在debug呀。暂停下来看变量的值就是很慢。
可以看到单机调试时, downstreamAckTimeNanos的值等于 downstreamTimeNanos[0] + downstreamTimeNanos[1] 的值。
因为datanode在接受packet的时候是 while (re