hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jitendra Nath Pandey (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-8999) Namenode need not wait for {{blockReceived}} for the last block before completing a file.
Date Tue, 22 Dec 2015 00:02:46 GMT

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

Jitendra Nath Pandey commented on HDFS-8999:
--------------------------------------------

 The clients do know the data pipeline and so does the NN. Therefore, at the instant pipeline
closes, client and NN know the location of the blocks. The blocks can move anywhere afterwards,
but that is no worse than a DN sending an IBR, but loosing the block immediately afterwards.

  Every system has certain scalability limits, but if a design choice can push the limit a
bit higher, its not a bad idea to explore. The problems will come back with more writers and
more DNs, but at least at a higher level of scale.

 Agreed, we need a solution to the race condition, the direction that [~jingzhao] mentioned
in his last comment, seems promising.

> Namenode need not wait for {{blockReceived}} for the last block before completing a file.
> -----------------------------------------------------------------------------------------
>
>                 Key: HDFS-8999
>                 URL: https://issues.apache.org/jira/browse/HDFS-8999
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: namenode
>            Reporter: Jitendra Nath Pandey
>            Assignee: Tsz Wo Nicholas Sze
>
> This comes out of a discussion in HDFS-8763. Pasting [~jingzhao]'s comment from the jira:
> {quote}
> ...whether we need to let NameNode wait for all the block_received msgs to announce the
replica is safe. Looking into the code, now we have
>    # NameNode knows the DataNodes involved when initially setting up the writing pipeline
>    # If any DataNode fails during the writing, client bumps the GS and finally reports
all the DataNodes included in the new pipeline to NameNode through the updatePipeline RPC.
>    # When the client received the ack for the last packet of the block (and before the
client tries to close the file on NameNode), the replica has been finalized in all the DataNodes.
> Then in this case, when NameNode receives the close request from the client, the NameNode
already knows the latest replicas for the block. Currently the checkReplication call only
counts in all the replicas that NN has already received the block_received msg, but based
on the above #2 and #3, it may be safe to also count in all the replicas in the BlockUnderConstructionFeature#replicas?
> {quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message