[ https://issues.apache.org/jira/browse/HBASE-17910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Duo Zhang updated HBASE-17910: ------------------------------ Affects Version/s: 2.0.0 Fix Version/s: 2.0.0 Component/s: Scanners scan regionserver > Use separated StoreFileReader for streaming read > ------------------------------------------------ > > Key: HBASE-17910 > URL: https://issues.apache.org/jira/browse/HBASE-17910 > Project: HBase > Issue Type: Improvement > Components: regionserver, scan, Scanners > Affects Versions: 2.0.0 > Reporter: Duo Zhang > Assignee: Duo Zhang > Fix For: 2.0.0 > > > For now we have already supportted using private readers for compaction, by > creating a new StoreFile copy. I think a better way is to allow creating > multiple readers from a single StoreFile instance, thus we can avoid the ugly > cloning, and the reader can also be used for streaming scan, not only for > compaction. > The reason we want to do this is that, we found a read amplification when > using short circult read. {{BlockReaderLocal}} will use an internal buffer to > read data first, the buffer size is based on the configured buffer size and > the readahead option in CachingStrategy. For normal pread request, we should > just bypass the buffer, this can be achieved by setting readahead to 0. But > for streaming read I think the buffer is somehow still useful? So we need to > use different FSDataInputStream for pread and streaming read. > And one more thing is that, we can also remove the streamLock if streaming > read always use its own reader. -- This message was sent by Atlassian JIRA (v6.3.15#6346)