Package com.illumon.iris.db.v2.utils
Class LongColumnSourceRedirectionIndex
java.lang.Object
com.illumon.iris.db.v2.utils.LongColumnSourceRedirectionIndex
- All Implemented Interfaces:
RedirectionIndex
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.illumon.iris.db.v2.utils.RedirectionIndex
RedirectionIndex.Factory -
Field Summary
Fields inherited from interface com.illumon.iris.db.v2.utils.RedirectionIndex
DEFAULT_FILL_INSTANCE, EMPTY_CONTEXT, FACTORY, USE_LOCK_FREE_IMPL_PROPERTY_NAME -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidensureUpdateCapacity(int capacity) Ensure that there is enough space to perform at least 'capacity' updates.voidfillChunk(RedirectionIndex.FillContext fillContext, WritableLongChunk<Attributes.KeyIndices> mappedKeysOut, OrderedKeys keysToMap) Lookup each element in OrderedKeys and write the result to mappedKeysOutvoidfillFromChunk(WritableChunkSink.FillFromContext context, Chunk<? extends Attributes.Values> src, OrderedKeys orderedKeys) Our default, inefficient, implementation.voidfillPrevChunk(RedirectionIndex.FillContext fillContext, WritableLongChunk<Attributes.KeyIndices> mappedKeysOut, OrderedKeys keysToMap) longget(long key) Get the current inner mapping for the specified key.longgetPrev(long key) Get the previous mapping for the specified keymakeFillContext(int chunkSize, SharedContext sharedContext) makeFillFromContext(int chunkCapacity) Provide a default, emptyWritableChunkSink.FillFromContextfor use with our defaultWritableSource.fillFromChunk(com.illumon.iris.db.v2.sources.WritableChunkSink.FillFromContext, com.illumon.iris.db.v2.sources.chunk.Chunk<? extends com.illumon.iris.db.v2.sources.chunk.Attributes.Values>, com.illumon.iris.db.v2.utils.OrderedKeys).longput(long key, long index) Insert a mapping from key to inner index into this redirection.voidputVoid(long key, long index) Like put, but we do not care about a return value.longremove(long key) Remove the specified mapping from the redirectionvoidremoveAll(OrderedKeys keys) Remove all the keys contained in theOrderedKeysfrom this redirectionvoidvoidremoveVoid(long key) Like remove, but we do not care about a return value.voidIndicate to the implementation that it should track changes with previous values for ticking updates.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.illumon.iris.db.v2.utils.RedirectionIndex
applyShift, ascendingMapping, fillChunkUnordered
-
Constructor Details
-
LongColumnSourceRedirectionIndex
-
-
Method Details
-
ensureUpdateCapacity
public void ensureUpdateCapacity(int capacity) Description copied from interface:RedirectionIndexEnsure that there is enough space to perform at least 'capacity' updates.- Specified by:
ensureUpdateCapacityin interfaceRedirectionIndex- Parameters:
capacity- the capacity of the update
-
put
public long put(long key, long index) Description copied from interface:RedirectionIndexInsert a mapping from key to inner index into this redirection.- Specified by:
putin interfaceRedirectionIndex- Parameters:
key- the key to be mappedindex- the index the key should be mapped to on the inner source- Returns:
- the previous mapping for the specified key, or
ReadOnlyIndex.NULL_KEYif there was none.
-
putVoid
public void putVoid(long key, long index) Description copied from interface:RedirectionIndexLike put, but we do not care about a return value.- Specified by:
putVoidin interfaceRedirectionIndex- Parameters:
key- the key to putindex- the inner value to insert into the redirection index
-
get
public long get(long key) Description copied from interface:RedirectionIndexGet the current inner mapping for the specified key.- Specified by:
getin interfaceRedirectionIndex- Parameters:
key- the key to find a mapping for.- Returns:
- the current mapping for the specified key, or
ReadOnlyIndex.NULL_KEYif there was none.
-
getPrev
public long getPrev(long key) Description copied from interface:RedirectionIndexGet the previous mapping for the specified key- Specified by:
getPrevin interfaceRedirectionIndex- Parameters:
key- the key to locate a mapping for- Returns:
- the mapped value or
ReadOnlyIndex.NULL_KEYif none existed.
-
fillChunk
public void fillChunk(@NotNull RedirectionIndex.FillContext fillContext, @NotNull WritableLongChunk<Attributes.KeyIndices> mappedKeysOut, @NotNull OrderedKeys keysToMap) Description copied from interface:RedirectionIndexLookup each element in OrderedKeys and write the result to mappedKeysOut- Specified by:
fillChunkin interfaceRedirectionIndex- Parameters:
fillContext- the RedirectionIndex FillContextmappedKeysOut- the result chunkkeysToMap- the keys to lookup in this redirection index
-
fillPrevChunk
public void fillPrevChunk(@NotNull RedirectionIndex.FillContext fillContext, @NotNull WritableLongChunk<Attributes.KeyIndices> mappedKeysOut, @NotNull OrderedKeys keysToMap) - Specified by:
fillPrevChunkin interfaceRedirectionIndex
-
remove
public long remove(long key) Description copied from interface:RedirectionIndexRemove the specified mapping from the redirection- Specified by:
removein interfaceRedirectionIndex- Parameters:
key- the index to unmap.- Returns:
- the previous mapping or
ReadOnlyIndex.NULL_KEYif none existed.
-
removeVoid
public void removeVoid(long key) Description copied from interface:RedirectionIndexLike remove, but we do not care about a return value.- Specified by:
removeVoidin interfaceRedirectionIndex- Parameters:
key- the key to remove
-
removeAll
Description copied from interface:RedirectionIndexRemove all the keys contained in theOrderedKeysfrom this redirection- Specified by:
removeAllin interfaceRedirectionIndex- Parameters:
keys- the keys to remove.
-
removeAllUnordered
- Specified by:
removeAllUnorderedin interfaceRedirectionIndex
-
makeFillFromContext
Description copied from interface:RedirectionIndexProvide a default, emptyWritableChunkSink.FillFromContextfor use with our defaultWritableSource.fillFromChunk(com.illumon.iris.db.v2.sources.WritableChunkSink.FillFromContext, com.illumon.iris.db.v2.sources.chunk.Chunk<? extends com.illumon.iris.db.v2.sources.chunk.Attributes.Values>, com.illumon.iris.db.v2.utils.OrderedKeys).- Specified by:
makeFillFromContextin interfaceRedirectionIndex
-
fillFromChunk
public void fillFromChunk(@NotNull WritableChunkSink.FillFromContext context, @NotNull Chunk<? extends Attributes.Values> src, @NotNull OrderedKeys orderedKeys) Description copied from interface:RedirectionIndexOur default, inefficient, implementation. Inheritors who care should provide a better implementation.- Specified by:
fillFromChunkin interfaceRedirectionIndex
-
startTrackingPrevValues
public void startTrackingPrevValues()Description copied from interface:RedirectionIndexIndicate to the implementation that it should track changes with previous values for ticking updates.- Specified by:
startTrackingPrevValuesin interfaceRedirectionIndex
-