[ 
https://issues.apache.org/jira/browse/HDFS-16569?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17532765#comment-17532765
 ] 

Yuanbo Liu commented on HDFS-16569:
-----------------------------------

[~hexiaoqiao] Thanks for your comment.

The process is here:
1. client get block location from nn
2. setup pipeline and write block data

3. when the block is finished, then retry multiple times to make sure DN has 
sent RECEIVED_BLOCK to NN by IBR
4. when batch ibr is enabled (the interval is usually 300ms), client will not 
mark block as finshed before 300ms(even longer if DN is very busy)

5. repeat step3,4 until last block is finshed, then client try to close file 
multiple times(default is 5 times with around 15 seconds).
6. If DN is busy, or ibr batch is not triggerred when interval is not reached,  
We can see log 'is COMMITTED but not COMPLETE(numNodes= 0 <  minimum = 1) in 
file' in namenode

As we know, client already gets the location info from nn, and gets acks from 
dn, it seems not necessary to rely on ibr to mark block as completed. So we can 
send block locations to NN in step3

> Consider attaching block location info from client when closing a completed 
> file
> --------------------------------------------------------------------------------
>
>                 Key: HDFS-16569
>                 URL: https://issues.apache.org/jira/browse/HDFS-16569
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>            Reporter: Yuanbo Liu
>            Priority: Major
>
> when a file is finished, client will not close it until DNs send 
> RECEIVED_BLOCK by ibr or client is timeout. we can always see such kind of 
> log in namenode
> {code:java}
> is COMMITTED but not COMPLETE(numNodes= 0 <  minimum = 1) in file{code}
> Since client already has the last block locations, it's not necessary to rely 
> on the ibr from DN when closing file.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to