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

Eshcar Hillel commented on HBASE-17339:
---------------------------------------

We can use existing TRT, no need for a new one. Only need to remember the 
maximal flushed TS so far and make sure the range in TRT is beyond this TS.

The protocol including step-0 is for each step:

{code}
 0. check monotonicity in all relevant stores
if monotonicity is maintained and the optimization is applicable (given list of 
columns) then
 1. open all relevant  *memory* scanners
 2. get results
 ONLY if result is not complete then
  3. open all scanners
  4. get results
else
 5. open all scanners
 6. get results
{code}

possible executions are 0-1-2, 0-1-2-3-4, 0-5-6, the operation returns the 
result of step 2 (access only memory) or steps 4/6 (access memory and HFiles)

> Scan-Memory-First Optimization for Get Operation
> ------------------------------------------------
>
>                 Key: HBASE-17339
>                 URL: https://issues.apache.org/jira/browse/HBASE-17339
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Eshcar Hillel
>         Attachments: HBASE-17339-V01.patch
>
>
> The current implementation of a get operation (to retrieve values for a 
> specific key) scans through all relevant stores of the region; for each store 
> both memory components (memstores segments) and disk components (hfiles) are 
> scanned in parallel.
> We suggest to apply an optimization that speculatively scans memory-only 
> components first and only if the result is incomplete scans both memory and 
> disk.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to