public interface BatchScanner extends ScannerBaseIn exchange for possibly returning scanned entries out of order, BatchScanner implementations may scan an Accumulo table more efficiently by
- Looking up multiple ranges in parallel. Parallelism is constrained by the number of threads available to the BatchScanner, set in its constructor.
- Breaking up large ranges into subranges. Often the number and boundaries of subranges are determined by a table's split points.
- Combining multiple ranges into a single RPC call to a tablet server.
Scannerin use cases such as
- Retrieving many small ranges
- Scanning a large range that returns many entries
- Running server-side iterators that perform computation, even if few entries are returned from the scan itself
Scannerinstead when sorted order is important.
A BatchScanner instance will use no more threads than provided in the construction of the BatchScanner implementation. Multiple invocations of
iterator()will all share the same resources of the instance. A new BatchScanner instance should be created to use allocate additional threads.
All Methods Instance Methods Abstract Methods Modifier and Type Method Description
close()Closes any underlying connections on the scanner.
setRanges(Collection<Range> ranges)Allows scanning over multiple ranges efficiently.
setTimeout(long timeout, TimeUnit timeUnit)This setting determines how long a scanner will automatically retry when a failure occurs.
Methods inherited from interface org.apache.accumulo.core.client.ScannerBase
addScanIterator, clearClassLoaderContext, clearColumns, clearSamplerConfiguration, clearScanIterators, fetchColumn, fetchColumn, fetchColumn, fetchColumnFamily, fetchColumnFamily, getAuthorizations, getBatchTimeout, getClassLoaderContext, getSamplerConfiguration, getTimeout, iterator, removeScanIterator, setBatchTimeout, setClassLoaderContext, setExecutionHints, setSamplerConfiguration, updateScanIteratorOption
void setRanges(Collection<Range> ranges)Allows scanning over multiple ranges efficiently.
ranges- specifies the non-overlapping ranges to query
void close()Description copied from interface:
ScannerBaseCloses any underlying connections on the scanner. This may invalidate any iterators derived from the Scanner, causing them to throw exceptions.
void setTimeout(long timeout, TimeUnit timeUnit)This setting determines how long a scanner will automatically retry when a failure occurs. By default, a scanner will retry forever.
The batch scanner will accomplish as much work as possible before throwing an exception. BatchScanner iterators will throw a
TimedOutExceptionwhen all needed servers timeout.