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

Ayush Saxena commented on HDFS-14694:
-------------------------------------

Thanx [~leosun08] for the update.

{code:java}
+      try {
+        recoverLease(recoverLeaseOnCloseException);
+      } catch (Exception e) {
+        // Ignore exception rendered by recoverLease. Throw original
+        // exception
+      }
{code}

Can we do the try-catch as well in the  new method? The only difference I see 
is logging, I think there is no harm in logging in the latter case as well? We 
tried to recover lease and failed, that is something not normal, we should log 
it?

Other than this changes LGTM

> Call recoverLease on DFSOutputStream close exception
> ----------------------------------------------------
>
>                 Key: HDFS-14694
>                 URL: https://issues.apache.org/jira/browse/HDFS-14694
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: hdfs-client
>            Reporter: Chen Zhang
>            Assignee: Lisheng Sun
>            Priority: Major
>         Attachments: HDFS-14694.001.patch, HDFS-14694.002.patch, 
> HDFS-14694.003.patch, HDFS-14694.004.patch, HDFS-14694.005.patch, 
> HDFS-14694.006.patch, HDFS-14694.007.patch, HDFS-14694.008.patch, 
> HDFS-14694.009.patch, HDFS-14694.010.patch, HDFS-14694.011.patch, 
> HDFS-14694.012.patch, HDFS-14694.013.patch
>
>
> HDFS uses file-lease to manage opened files, when a file is not closed 
> normally, NN will recover lease automatically after hard limit exceeded. But 
> for a long running service(e.g. HBase), the hdfs-client will never die and NN 
> don't have any chances to recover the file.
> Usually client program needs to handle exceptions by themself to avoid this 
> condition(e.g. HBase automatically call recover lease for files that not 
> closed normally), but in our experience, most services (in our company) don't 
> process this condition properly, which will cause lots of files in abnormal 
> status or even data loss.
> This Jira propose to add a feature that call recoverLease operation 
> automatically when DFSOutputSteam close encounters exception. It should be 
> disabled by default, but when somebody builds a long-running service based on 
> HDFS, they can enable this option.
> We've add this feature to our internal Hadoop distribution for more than 3 
> years, it's quite useful according our experience.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to