hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric Hanson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-11660) Make WAL reader follow contract for java.io.InputStream.available()
Date Mon, 04 Aug 2014 17:28:12 GMT

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

Eric Hanson commented on HBASE-11660:
-------------------------------------

I saw another check for available == 0 in the same file targeted by this patch. Perhaps there
are more elsewhere. It'd be good for somebody familiar with the WAL splitting/reading process
to have a look and see if there needs to be more changes to make the code only rely on the
available() contract from InputStream.

> Make WAL reader follow contract for java.io.InputStream.available()
> -------------------------------------------------------------------
>
>                 Key: HBASE-11660
>                 URL: https://issues.apache.org/jira/browse/HBASE-11660
>             Project: HBase
>          Issue Type: Bug
>          Components: wal
>            Reporter: Eric Hanson
>            Priority: Minor
>         Attachments: hbase-11660.01.patch
>
>
> In the process of building support to running HBase on Microsoft Azure HDInsight, I hit
an issue in the HBase WAL reading process that took a lot of time to debug. The WAL reading
code depends on available() for the log InputStream never returing 0 until end of file. This
is not the same as the contract in java.io.InputStream for available. 
> To prevent future grief for others that may want to port HBase onto storage systems other
than HDFS, I propose to change the HBase WAL reader so it does not assume that EOF has been
reached when available() == 0. It instead would treat available only as described in InputStream,
i.e. available() is merely the number of bytes that could be read from the stream without
blocking. That could be 0 even before EOF.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message