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

Vladimir Rodionov commented on HBASE-9769:
------------------------------------------

The main idea is to provide new Scanner's hint (via new attribute) for RS - 
something SCAN-SMALL-ROWS and in Store.getScanners we will  check for this 
attribute and if it is present we use StoreSCanner ctor with NULL as columns 
set:
{code}
 public KeyValueScanner getScanner(Scan scan,
      final NavigableSet<byte []> targetCols) throws IOException {
    lock.readLock().lock();
    boolean smallRowsScan = scan.getAttribute("SCAN-SMALL-ROWS") != null;
    if(smallRowsScan){
          Filter ecFilter = new ExplicitColumnsFilter(targetCols);
          // update filter in Scan with ecFilter
          // remove  columnFamilyMap from Scan
    }
    try {
      KeyValueScanner scanner = null;
      if (getHRegion().getCoprocessorHost() != null) {
        scanner = getHRegion().getCoprocessorHost().preStoreScannerOpen(this, 
scan, smallRowsScan? null: targetCols);
      }
      if (scanner == null) {
        scanner = new StoreScanner(this, getScanInfo(), scan, smallRowsScan? 
null: targetCols:targetCols);
      }
      return scanner;
    } finally {
      lock.readLock().unlock();
    }
  }

{code}

If no attribute than - default path
 

> Improve performance of a Scanner with explicit column list when rows are 
> small/medium size
> ------------------------------------------------------------------------------------------
>
>                 Key: HBASE-9769
>                 URL: https://issues.apache.org/jira/browse/HBASE-9769
>             Project: HBase
>          Issue Type: Improvement
>          Components: Scanners
>    Affects Versions: 0.98.0, 0.94.12, 0.96.0
>            Reporter: Vladimir Rodionov
>            Assignee: Vladimir Rodionov
>




--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to