org.apache.accumulo.core.client
Class ClientSideIteratorScanner

java.lang.Object
  extended by org.apache.accumulo.core.client.impl.ScannerOptions
      extended by org.apache.accumulo.core.client.ClientSideIteratorScanner
All Implemented Interfaces:
Iterable<Map.Entry<Key,Value>>, Scanner, ScannerBase

public class ClientSideIteratorScanner
extends ScannerOptions
implements Scanner

A scanner that instantiates iterators on the client side instead of on the tablet server. This can be useful for testing iterators or in cases where you don't want iterators affecting the performance of tablet servers.

Suggested usage:
Scanner scanner = new ClientSideIteratorScanner(connector.createScanner(tableName, authorizations));

Iterators added to this scanner will be run in the client JVM. Separate scan iterators can be run on the server side and client side by adding iterators to the source scanner (which will execute server side) and to the client side scanner (which will execute client side).


Nested Class Summary
 class ClientSideIteratorScanner.ScannerTranslator
          A class that wraps a Scanner in a SortedKeyValueIterator so that other accumulo iterators can use it as a source.
 
Field Summary
 
Fields inherited from class org.apache.accumulo.core.client.impl.ScannerOptions
fetchedColumns, serverSideIteratorList, serverSideIteratorOptions, timeOut
 
Constructor Summary
ClientSideIteratorScanner(Scanner scanner)
          Constructs a scanner that can execute client-side iterators.
 
Method Summary
 void disableIsolation()
          Disables row isolation.
 void enableIsolation()
          Enables row isolation.
 int getBatchSize()
          Returns the batch size (number of Key/Value pairs) that will be fetched at a time from a tablet server.
 Range getRange()
          Returns the range of keys to scan over.
 long getReadaheadThreshold()
          The number of batches of Key/Value pairs returned before the Scanner will begin to prefetch the next batch
 int getTimeOut()
          Deprecated. 
 Iterator<Map.Entry<Key,Value>> iterator()
          Returns an iterator over an accumulo table.
 void setBatchSize(int size)
          Sets the number of Key/Value pairs that will be fetched at a time from a tablet server.
 void setRange(Range range)
          Sets the range of keys to scan over.
 void setReadaheadThreshold(long batches)
          Sets the number of batches of Key/Value pairs returned before the Scanner will begin to prefetch the next batch
 void setSource(Scanner scanner)
          Sets the source Scanner.
 void setTimeOut(int timeOut)
          Deprecated. 
 
Methods inherited from class org.apache.accumulo.core.client.impl.ScannerOptions
addScanIterator, clearColumns, clearScanIterators, close, fetchColumn, fetchColumn, fetchColumnFamily, getFetchedColumns, getTimeout, removeScanIterator, setOptions, setTimeout, updateScanIteratorOption
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.accumulo.core.client.ScannerBase
addScanIterator, clearColumns, clearScanIterators, close, fetchColumn, fetchColumnFamily, getTimeout, removeScanIterator, setTimeout, updateScanIteratorOption
 

Constructor Detail

ClientSideIteratorScanner

public ClientSideIteratorScanner(Scanner scanner)
Constructs a scanner that can execute client-side iterators.

Parameters:
scanner - the source scanner
Method Detail

setSource

public void setSource(Scanner scanner)
Sets the source Scanner.


iterator

public Iterator<Map.Entry<Key,Value>> iterator()
Description copied from interface: ScannerBase
Returns an iterator over an accumulo table. This iterator uses the options that are currently set for its lifetime, so setting options will have no effect on existing iterators. Keys returned by the iterator are not guaranteed to be in sorted order.

Specified by:
iterator in interface Iterable<Map.Entry<Key,Value>>
Specified by:
iterator in interface ScannerBase
Overrides:
iterator in class ScannerOptions
Returns:
an iterator over Key,Value pairs which meet the restrictions set on the scanner

setTimeOut

@Deprecated
public void setTimeOut(int timeOut)
Deprecated. 

Description copied from interface: Scanner
This setting determines how long a scanner will automatically retry when a failure occurs. By default a scanner will retry forever.

Specified by:
setTimeOut in interface Scanner
Parameters:
timeOut - in seconds

getTimeOut

@Deprecated
public int getTimeOut()
Deprecated. 

Description copied from interface: Scanner
Returns the setting for how long a scanner will automatically retry when a failure occurs.

Specified by:
getTimeOut in interface Scanner
Returns:
the timeout configured for this scanner

setRange

public void setRange(Range range)
Description copied from interface: Scanner
Sets the range of keys to scan over.

Specified by:
setRange in interface Scanner
Parameters:
range - key range to begin and end scan

getRange

public Range getRange()
Description copied from interface: Scanner
Returns the range of keys to scan over.

Specified by:
getRange in interface Scanner
Returns:
the range configured for this scanner

setBatchSize

public void setBatchSize(int size)
Description copied from interface: Scanner
Sets the number of Key/Value pairs that will be fetched at a time from a tablet server.

Specified by:
setBatchSize in interface Scanner
Parameters:
size - the number of Key/Value pairs to fetch per call to Accumulo

getBatchSize

public int getBatchSize()
Description copied from interface: Scanner
Returns the batch size (number of Key/Value pairs) that will be fetched at a time from a tablet server.

Specified by:
getBatchSize in interface Scanner
Returns:
the batch size configured for this scanner

enableIsolation

public void enableIsolation()
Description copied from interface: Scanner
Enables row isolation. Writes that occur to a row after a scan of that row has begun will not be seen if this option is enabled.

Specified by:
enableIsolation in interface Scanner

disableIsolation

public void disableIsolation()
Description copied from interface: Scanner
Disables row isolation. Writes that occur to a row after a scan of that row has begun may be seen if this option is enabled.

Specified by:
disableIsolation in interface Scanner

getReadaheadThreshold

public long getReadaheadThreshold()
Description copied from interface: Scanner
The number of batches of Key/Value pairs returned before the Scanner will begin to prefetch the next batch

Specified by:
getReadaheadThreshold in interface Scanner
Returns:
Number of batches before read-ahead begins

setReadaheadThreshold

public void setReadaheadThreshold(long batches)
Description copied from interface: Scanner
Sets the number of batches of Key/Value pairs returned before the Scanner will begin to prefetch the next batch

Specified by:
setReadaheadThreshold in interface Scanner
Parameters:
batches - Non-negative number of batches


Copyright © 2015 Apache Accumulo Project. All rights reserved.