blob: 03139e42600980d0dd69b903b6905f43c693edd5 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.accumulo.core.client;
import org.apache.accumulo.core.data.Range;
/**
* Scans a table over a given range.
*
* "Clients can iterate over multiple column families, and there are several mechanisms for limiting
* the rows, columns, and timestamps traversed by a scan. For example, we could restrict [a] scan
* ... to only produce anchors whose columns match [a] regular expression ..., or to only produce
* anchors whose timestamps fall within ten days of the current time."
*/
public interface Scanner extends ScannerBase {
/**
* This setting determines how long a scanner will automatically retry when a failure occurs. By
* default a scanner will retry forever.
*
* @param timeOut
* in seconds
* @deprecated Since 1.5. See {@link ScannerBase#setTimeout(long, java.util.concurrent.TimeUnit)}
*/
@Deprecated
void setTimeOut(int timeOut);
/**
* Returns the setting for how long a scanner will automatically retry when a failure occurs.
*
* @return the timeout configured for this scanner
* @deprecated Since 1.5. See {@link ScannerBase#getTimeout(java.util.concurrent.TimeUnit)}
*/
@Deprecated
int getTimeOut();
/**
* Sets the range of keys to scan over.
*
* @param range
* key range to begin and end scan
*/
void setRange(Range range);
/**
* Returns the range of keys to scan over.
*
* @return the range configured for this scanner
*/
Range getRange();
/**
* Sets the number of Key/Value pairs that will be fetched at a time from a tablet server.
*
* @param size
* the number of Key/Value pairs to fetch per call to Accumulo
*/
void setBatchSize(int size);
/**
* Returns the batch size (number of Key/Value pairs) that will be fetched at a time from a tablet
* server.
*
* @return the batch size configured for this scanner
*/
int getBatchSize();
/**
* 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.
*/
void enableIsolation();
/**
* 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.
*/
void disableIsolation();
/**
* The number of batches of Key/Value pairs returned before the {@link Scanner} will begin to
* prefetch the next batch
*
* @return Number of batches before read-ahead begins
* @since 1.6.0
*/
long getReadaheadThreshold();
/**
* Sets the number of batches of Key/Value pairs returned before the {@link Scanner} will begin to
* prefetch the next batch
*
* @param batches
* Non-negative number of batches
* @since 1.6.0
*/
void setReadaheadThreshold(long batches);
}