[
https://issues.apache.org/jira/browse/PHOENIX-6385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17300107#comment-17300107
]
Istvan Toth commented on PHOENIX-6385:
--------------------------------------
Welcome back, [~vjasani]
I'm fine with including it in the 5.1 branch.
The 5.1.1 RC1 vote is open. If you feel that this is important enough to hold
back 5.1.1, then please reply on the VOTE thread, otherwise it can go into
5.1.2.
> Not to use Scan#setSmall for HBase 2.x versions
> -----------------------------------------------
>
> Key: PHOENIX-6385
> URL: https://issues.apache.org/jira/browse/PHOENIX-6385
> Project: Phoenix
> Issue Type: Improvement
> Reporter: Anoop Sam John
> Assignee: Viraj Jasani
> Priority: Major
> Fix For: 5.1.1, 5.2.0
>
>
> {code:java}
> /**
> * Set whether this scan is a small scan
> * <p>
> * Small scan should use pread and big scan can use seek + read seek + read
> is fast but can cause
> * two problem (1) resource contention (2) cause too much network io
> [89-fb] Using pread for
> * non-compaction read request
> https://issues.apache.org/jira/browse/HBASE-7266 On the other hand,
> * if setting it true, we would do openScanner,next,closeScanner in one RPC
> call. It means the
> * better performance for small scan. [HBASE-9488]. Generally, if the scan
> range is within one
> * data block(64KB), it could be considered as a small scan.
> * @param small
> * @deprecated since 2.0.0 and will be removed in 3.0.0. Use {@link
> #setLimit(int)} and
> * {@link #setReadType(ReadType)} instead. And for the one rpc
> optimization, now we will also
> * fetch data when openScanner, and if the number of rows reaches the
> limit then we will close
> * the scanner automatically which means we will fall back to one rpc.
> * @see #setLimit(int)
> * @see #setReadType(ReadType)
> * @see <a
> href="https://issues.apache.org/jira/browse/HBASE-17045">HBASE-17045</a>
> */
> @Deprecated
> public Scan setSmall(boolean small)
> {code}
> In 1.x there is seperate ClientSmallScanner impl doing single RPC for scan.
> In 2.x by default it handles single RPC if there are less number of rows.
> We might have to setLimit.
> Also in 2.x setSmall() API sets the readType to be PRead. But this is good
> for small reads like only one hfile blocks get read. But what I noticed in
> phoenix is that even count(*) query result in setting Scan as small scan and
> end up using PRead (This will result in full scan).
> So we should not be setting the ReadType at all. Instead rely on HBase to
> intelligently switch scan type (start with PRead and if it scans more data
> switch to stream read)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)