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

chenxu commented on HBASE-17910:
--------------------------------

{quote}Of course, these stuffs(trailer, index, etc.) can be shared between 
different readers. Will open other issues to address it.
{quote}
Is there any issues to track this, looking forward to this :)

> 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, Scanners
>    Affects Versions: 2.0.0
>            Reporter: Duo Zhang
>            Assignee: Duo Zhang
>            Priority: Major
>             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
(v8.3.2#803003)

Reply via email to