You are right.

The scanner could potentially scan over a snapshot of all Stores at the time 
when the scanner started.

The details are bit tricky, though. We'd have to not compact anything while a 
scanner is executing (or at least keep the old files around until the scanner 
is scanner).
The same holds for the memstore. After the scanner started the memstore could 
flush, we would need to keep the state in the memstore until the scanner is 
done.
(TestAtomicOperation fails when the synchronization is removed from 
StoreScanner.next(...))


-- Lars



________________________________
 From: Stack <[email protected]>
To: HBase Dev List <[email protected]>; lars hofhansl <[email protected]> 
Sent: Monday, December 10, 2012 11:17 AM
Subject: Re: Concurrent use of RegionScanner.next
 
On Sat, Dec 8, 2012 at 9:32 PM, lars hofhansl <[email protected]> wrote:

> Alas... Store.notifyChangedReadersObservers, which calls updateReaders on
> all used StoreScanners, foils my ingenious plan.
>
>
This does not seem like enough of a reason to keep synchronization on
nexting.  Could we let readers live on across a next invocation?
St.Ack

Reply via email to