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

Colin Patrick McCabe updated HDFS-3510:
---------------------------------------

    Attachment: HDFS-3510.010.patch

Earlier Suresh commented that we should support more than 1MB of preallocation 
at a time.  This patch makes that possible.

* EditLogOutputStream: rename PREALLOCATION_LENGTH to MIN_PREALLOCATION_LENGTH, 
to reflect the fact that we can now pre-allocate more than 1MB at a time.

* FSEditLogOp#Reader#verifyTerminator: allow more than 1.5MB of padding at the 
end of the edit log.  In order to do this, the verifyTerminator function 
disables the StreamLimiter, and uses the InputStream#mark interface.

* EditLogOutputStream: in contrast to the previous patch, move the 
preallocation logic into EditLogOutputStream#preallocate, where it originally 
was.  Handle pre-allocating more than 1MB at a time.  Keep the LOG.debug
message on every preallocation.

* There are many new unit tests
                
> Improve FSEditLog pre-allocation
> --------------------------------
>
>                 Key: HDFS-3510
>                 URL: https://issues.apache.org/jira/browse/HDFS-3510
>             Project: Hadoop HDFS
>          Issue Type: Bug
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Colin Patrick McCabe
>            Assignee: Colin Patrick McCabe
>             Fix For: 1.0.0, 2.0.1-alpha
>
>         Attachments: HDFS-3510-b1.001.patch, HDFS-3510-b1.002.patch, 
> HDFS-3510.001.patch, HDFS-3510.003.patch, HDFS-3510.004.patch, 
> HDFS-3510.004.patch, HDFS-3510.006.patch, HDFS-3510.007.patch, 
> HDFS-3510.008.patch, HDFS-3510.009.patch, HDFS-3510.010.patch
>
>
> It is good to avoid running out of space in the middle of writing a batch of 
> edits, because when it happens, we often get partial edits at the end of the 
> log.
> Edit log preallocation can solve this problem (see HADOOP-2330 for a full 
> description of edit log preallocation).
> The current pre-allocation code was introduced for performance reasons, not 
> for preventing partial edits.  As a consequence, we sometimes do a write 
> without using pre-allocation.  We should change the pre-allocation code so 
> that it always preallocates at least enough space before writing out the 
> edits.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to