public class RawDataServiceTupleIterator<E> extends AbstractChunkedTupleIterator<E>
IDataServicebut DOES NOT handle index partition splits, moves or joins.
Note: This class supports caching of the remote metadata index, which does
not use index partitions, by the
|Modifier and Type||Field and Description|
The data service for the index.
Error message used by
Error message used by
The name of the index partition on which the range query is being performed.
|Constructor and Description|
|Modifier and Type||Method and Description|
Batch delete the index entries identified by keys and clear the list.
Delete the index entry identified by key.
Atomic operation caches a chunk of results from an
The timestamp for the operation as specified by the ctor (this is used for remote index queries but when running against a local index).
Return an object that may be used to read the block from the backing store per the contract for
continuationQuery, deleteBehind, flush, getCommitTime, getDefaultCapacity, getQueryCount, getReadTime, getVisitedCount, hasNext, next, rangeQuery, remove
public static final transient String ERR_NO_KEYS
#getKey()when the iterator was not provisioned to request keys from the data service.
public static final transient String ERR_NO_VALS
#getValue()when the iterator was not provisioned to request values from the data service.
protected final IDataService dataService
Note: Be careful when using this field since you take on responsibilty for handling index partition splits, joins, and moves!
public final String name
public RawDataServiceTupleIterator(IDataService dataService, String name, long timestamp, boolean readConsistent, byte fromKey, byte toKey, int capacity, int flags, IFilter filter)
dataService- The data service on which the index resides.
name- The name of the index partition on that data service.
timestamp- The timestamp used for the reads.
readConsistent- This option is only available for
true, the first read will be against the most recent commit point on the database and any continuation queries will be against the same commit point. When
false, each read will be against the most recent commit point (so the data can be drawn from multiple commit points if there are concurrent commits).
The readConsistent option is a tweak available only at
this low level for the
It avoids a possible RMI to obtain the most recent global
commit point using
favor of using the most recent commit point on the index
partition at the time that the query is actually executed. If
you are reading against a scale-out index, then similar
effects are obtained by choosing either
protected ResultSet getResultSet(long timestamp, byte fromKey, byte toKey, int capacity, int flags, IFilter filter)
Note: This uses the timestamp specified by the caller NOT the
timestamp value stored by this class. This allows us to have
read-consistent semantics if desired for
protected void deleteBehind(int n, Iterator<byte> itr)
protected void deleteLast(byte key)
protected IBlock readBlock(int sourceIndex, long addr)
protected final long getTimestamp()
protected final boolean getReadConsistent()
AbstractChunkedTupleIterator.getCommitTime()will be used to ensure that
AbstractChunkedTupleIterator.continuationQuery()s run against the same commit point for the local index partition thereby producing a read consistent view even when the iterator is
AbstractChunkedTupleIterator.continuationQuery()s will use whatever value is returned by
AbstractChunkedTupleIterator.getTimestamp(). Read-consistent semantics for a partitioned index are achieved using the timestamp returned by
Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.