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
