Hi Charles, Thanks for pointing me to the doc, it really helps me a lot.
I am confused by another problem when I read DFSOutputStream.java. When packets a block are being sent through the pipeline, why DataStreamer will wait for all acks of the packets are received before the last packet is sent ? I see in DataSteamer's run, it will wait for ackQueue's size == 0, then add the last packet to ackQueue, then wait for ackQueue.size == 0 again and finally close the responseProcessor and the blockStream. Thanks, Xiaohe On Fri, Mar 13, 2015 at 8:27 PM, Charles Lamb <cl...@cloudera.com> wrote: > On 3/13/2015 7:55 AM, xiaohe lan wrote: > >> Hi experts, >> >> When HDFS client sends a packet of data to a DN in the pipeline, the >> packet >> will then be sent to the next DN in the pipeline. What confuses me is when >> the ack from a DN in the pipeline will be sent back ? In which order ? It >> is sent from the last to first or in other ways ? >> >> Thanks, >> Xiaohe >> > Hi Xiaohe, > > Take a look at figure 3.2 in https://issues.apache.org/ > jira/secure/attachment/12445209/appendDesign3.pdf. > > IHTH. > > Charles > >