[ 
https://issues.apache.org/jira/browse/HDFS-4526?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Uma Maheswara Rao G updated HDFS-4526:
--------------------------------------

    Resolution: Not A Problem
        Status: Resolved  (was: Patch Available)
    
> If persistBlocks enabled in Namenode, hflush call can avoid persisting blocks 
> with fsync
> ----------------------------------------------------------------------------------------
>
>                 Key: HDFS-4526
>                 URL: https://issues.apache.org/jira/browse/HDFS-4526
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: namenode
>    Affects Versions: 3.0.0, 2.0.3-alpha
>            Reporter: Uma Maheswara Rao G
>            Assignee: Uma Maheswara Rao G
>         Attachments: HDFS-4526.patch
>
>
> If persists blocks enabled/in HA, evenry getAdditionalBlock will persist the 
> blocks.
> So, if user calls Hflush, then client can simply ensure data flushed to DNs 
> and need not worry about fsync. 
> Since we can not depend upon client side configuration about persistBlocks, 
> we can just make a fsync call to NN and check whether persistBlocks enabled. 
> If it is enabled, then simply return as it would have already persisted. So, 
> that below peice of code execution can be avoided for every blocks and hflush 
> calls
> from fsync:
> {code}
>  writeLock();
>     try {
>       checkOperation(OperationCategory.WRITE);
>       if (isInSafeMode()) {
>         throw new SafeModeException("Cannot fsync file " + src, safeMode);
>       }
>       INodeFileUnderConstruction pendingFile  = checkLease(src, clientName);
>       dir.persistBlocks(src, pendingFile);
>     } finally {
>       writeUnlock();
>     }
>     getEditLog().logSync();
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to