hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Liang Xie (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HDFS-6698) try to optimize DFSInputStream.getFileLength()
Date Thu, 17 Jul 2014 04:31:05 GMT
Liang Xie created HDFS-6698:
-------------------------------

             Summary: try to optimize DFSInputStream.getFileLength()
                 Key: HDFS-6698
                 URL: https://issues.apache.org/jira/browse/HDFS-6698
             Project: Hadoop HDFS
          Issue Type: Improvement
          Components: hdfs-client
    Affects Versions: 3.0.0
            Reporter: Liang Xie
            Assignee: Liang Xie


HBase prefers to invoke read() serving scan request, and invoke pread() serving get reqeust.
Because pread() almost holds no lock.
Let's image there's a read() running, because the definition is:
{code}
public synchronized int read
{code}
so no other read() request could run concurrently, this is known, but pread() also could not
run...  because:
{code}
  public int read(long position, byte[] buffer, int offset, int length)
    throws IOException {
    // sanity checks
    dfsClient.checkOpen();
    if (closed) {
      throw new IOException("Stream closed");
    }
    failures = 0;
    long filelen = getFileLength();
{code}

the getFileLength() also needs lock.  so we need to figure out a no lock impl for getFileLength()
before HBase multi stream feature done. [~saint.ack@gmail.com]



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

Mime
View raw message