Eric Hanson created HBASE-11660:
-----------------------------------

             Summary: 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
            Reporter: Eric Hanson
            Priority: Minor


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)

Reply via email to