Hi Bin, I think that your observation is correct. The act of sending a SUCCESS status ack can be avoided by intelligently looking at the seqno. However, my opinion is that returning the extra bit of information is not impacting performance/correctness at all, do you agree?
thank, dhruba On Mon, Nov 2, 2009 at 12:39 PM, B. X. <bxi...@gmail.com> wrote: > Hi All, > > I observed that there are two kinds of ack'ing going on when a > datanode receives a data block packet: 1. ack by sending the sequence > number of the received block to upstream datanode; 2. also send > operation status (e.g. SUCCESS, ERROR); > > The seqno is chained, that is, a node will not ack the seqno unless > it received the same seqno from downstream, or a -2 is sent to > indicate not receiving anything from downstream datanodes. > The status is forwarded, with the number of such messages increased by > one traveling upstream. > > My question is why the seqno ack mechanism alone is not sufficient > in this case. Are status acks really needed? > > -Bin > -- Connect to me at http://www.facebook.com/dhruba