- 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
Nested Class Summary
Method SummaryModifier and TypeMethodDescription
close()Closes any underlying connections on the scanner.
voidAllows scanning over multiple ranges efficiently.
voidThis 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, forEach, getAuthorizations, getBatchTimeout, getClassLoaderContext, getConsistencyLevel, getSamplerConfiguration, getTimeout, iterator, removeScanIterator, setBatchTimeout, setClassLoaderContext, setConsistencyLevel, setExecutionHints, setSamplerConfiguration, stream, updateScanIteratorOption
setRangesAllows scanning over multiple ranges efficiently.
ranges- specifies the non-overlapping ranges to query
closevoid 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.
(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.