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(...))
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?