Class IndexingBase
- java.lang.Object
-
- com.apple.foundationdb.record.provider.foundationdb.IndexingBase
-
- Direct Known Subclasses:
IndexingByIndex
,IndexingByRecords
@API(INTERNAL) public abstract class IndexingBase extends Object
A base class for different types of online indexing scanners.
-
-
Field Summary
Fields Modifier and Type Field Description protected IndexingCommon
common
-
Method Summary
-
-
-
Field Detail
-
common
@Nonnull protected final IndexingCommon common
-
-
Method Detail
-
getRunner
protected FDBDatabaseRunner getRunner()
-
indexBuildLockSubspace
@Nonnull protected static Subspace indexBuildLockSubspace(@Nonnull FDBRecordStoreBase<?> store, @Nonnull Index index)
-
indexBuildScannedRecordsSubspace
@Nonnull protected static Subspace indexBuildScannedRecordsSubspace(@Nonnull FDBRecordStoreBase<?> store, @Nonnull Index index)
-
indexBuildTypeSubspace
@Nonnull protected static Subspace indexBuildTypeSubspace(@Nonnull FDBRecordStoreBase<?> store, @Nonnull Index index)
-
openRecordStore
protected CompletableFuture<FDBRecordStore> openRecordStore(@Nonnull FDBRecordContext context)
-
convertOrNull
@Nullable protected static Tuple convertOrNull(@Nullable Key.Evaluated key)
-
buildIndexAsync
public CompletableFuture<Void> buildIndexAsync(boolean markReadable)
-
setFallbackMode
@Nonnull public void setFallbackMode()
-
maybeLogBuildProgress
protected void maybeLogBuildProgress(SubspaceProvider subspaceProvider, List<Object> additionalLogMessageKeyValues)
-
getLimit
public int getLimit()
-
throttleDelay
protected CompletableFuture<Boolean> throttleDelay()
-
buildCommitRetryAsync
public <R> CompletableFuture<R> buildCommitRetryAsync(@Nonnull BiFunction<FDBRecordStore,AtomicLong,CompletableFuture<R>> buildFunction, boolean limitControl, @Nullable List<Object> additionalLogMessageKeyValues)
-
iterateRangeOnly
protected <T> CompletableFuture<Void> iterateRangeOnly(@Nonnull FDBRecordStore store, @Nonnull RecordCursor<T> cursor, @Nonnull Function<RecordCursorResult<T>,FDBStoredRecord<Message>> getRecord, @Nonnull AtomicReference<RecordCursorResult<T>> nextResultCont, @Nonnull AtomicBoolean hasMore, @Nullable AtomicLong recordsScanned)
iterate cursor's items and index them.- Type Parameters:
T
- cursor result's type.- Parameters:
store
- the record store.cursor
- iteration items.getRecord
- function to convert cursor's item to a record.nextResultCont
- when return, if hasMore is true, holds the last cursored result - unprocessed - as a continuation item.hasMore
- when return, true if the cursor's source is not exhausted (not more items in range).recordsScanned
- when return, number of scanned records.- Returns:
- hasMore, nextResultCont, and recordsScanned.
-
rebuildIndexAsync
@Nonnull public CompletableFuture<Void> rebuildIndexAsync(@Nonnull FDBRecordStore store)
-
-