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:
public synchronized int read
so no other read() request could run concurrently, this is known, but pread() also could not
run...  because:
  public int read(long position, byte[] buffer, int offset, int length)
    throws IOException {
    // sanity checks
    if (closed) {
      throw new IOException("Stream closed");
    failures = 0;
    long filelen = getFileLength();

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

View raw message