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

ryan rawson commented on HBASE-3498:
------------------------------------

After talking to stack about the unstable peek(), this might be ok.  

Consider, we have a scanner at the 'current' position that has a peek()ed value 
of 'C'.  Now later on when we peek() again we get 'B' or some other value < 'C' 
(but larger than the previously "gotten" values). This is still the 'current' 
heap in the KeyValueHeap, and only during the 'next' would we recheck the 
priority queue. At this point a different scanner might become the 'current' 
(aka top) scanner, but it could NOT have previously been the current scanner, 
because it would have had to have a value < 'C', which it did not.

This only works if only 1 KeyValueScanner has an unstable 'peek' and only if it 
is unstable in 1 direction (gets smaller than) only.

> Memstore scanner needs new semantics, which may require new data structure
> --------------------------------------------------------------------------
>
>                 Key: HBASE-3498
>                 URL: https://issues.apache.org/jira/browse/HBASE-3498
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: ryan rawson
>            Assignee: ryan rawson
>             Fix For: 0.92.0
>
>
> We may need a new memstore datastructure. Much has been written about the 
> concurrency and speed and cpu usage, but there are new things that were 
> brought to light with HBASE-2856. 
> Specifically we need a memstore scanner that serves up to the moment reads, 
> with a row-level completeness. Specifically after a memstore scanner goes 
> past the end of a row, it should return some kind of 'end of row' token which 
> the StoreScanner should trigger on to know it's at the end of the row. The 
> next call to memstore scanner.next() should return the _very next available 
> row from the start of that row_ at _the time it's requested_.
> It should specifically NOT:
> - return everything but the first column
> - skip a row that was inserted _after_ the previous next() was completed

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to