Class RangeIntersectionIterator.LookupIntersectionIterator<K extends Comparable<K>,D extends CombinedValue<K>>

java.lang.Object
org.apache.cassandra.utils.AbstractGuavaIterator<T>
org.apache.cassandra.index.sasi.utils.RangeIterator<K,D>
org.apache.cassandra.index.sasi.utils.RangeIntersectionIterator.LookupIntersectionIterator<K,D>
Type Parameters:
K - The type used to sort ranges.
D - The container type which is going to be returned by Iterator.next().
All Implemented Interfaces:
com.google.common.collect.PeekingIterator<D>, Closeable, AutoCloseable, Iterator<D>
Enclosing class:
RangeIntersectionIterator

protected static class RangeIntersectionIterator.LookupIntersectionIterator<K extends Comparable<K>,D extends CombinedValue<K>> extends RangeIterator<K,D>
Iterator which performs a linear scan over a primary range (the smallest of the ranges) and O(log(n)) lookup into secondary ranges using values from the primary iterator. This technique is efficient when one of the intersection ranges is smaller than others e.g. ratio 0.01d (default), in such situation scan + lookup is more efficient comparing to "bounce" merge because "bounce" distance is never going to be big.