@Override public GeoWaveValue[] getData(final short adapterId, final byte[] dataId) { return DataIndexUtils.getFieldValuesFromDataIdIndex( operations, adapterStore, internalAdapterStore, fieldSubsets, aggregation, additionalAuthorizations, adapterId, dataId); } }
public V postDecodeRow(final V decodedRow) { return postDecodeRow(decodedRow, (Function<V, O>) NO_OP); }
public AsyncInputFormatIteratorWrapper( final Iterator<GeoWaveRow> reader, final QueryFilter[] queryFilters, final TransientAdapterStore adapterStore, final InternalAdapterStore internalAdapterStore, final Index index, final boolean isOutputWritable, final BatchDataIndexRetrieval dataIndexRetrieval) { super( reader, queryFilters, adapterStore, internalAdapterStore, index, isOutputWritable, dataIndexRetrieval); batchHelper = new BatchDataIndexRetrievalIteratorHelper<>(dataIndexRetrieval); }
public synchronized void add(final byte[] dataId, final GeoWaveValue value) { put(dataId, DataIndexUtils.serializeDataIndexValue(value, visibilityEnabled)); }
final String[] additionalAuthorizations, final int dataIndexBatchSize) { if ((dataIndexBatchSize > 0) && !isDataIndex(index.getName())) { return new BatchIndexRetrievalImpl( operations, adapterStore, dataIndexBatchSize); return new DataIndexRetrievalImpl( operations, adapterStore,
@Override public boolean hasNext() { batchHelper.preHasNext(); return super.hasNext(); }
@Override protected void findNext() { super.findNext(); final boolean hasNextValue = (nextEntry != null); final Pair<GeoWaveInputKey, T> batchNextValue = batchHelper.postFindNext(hasNextValue, reader.hasNext()); if (!hasNextValue) { nextEntry = batchNextValue; } }
@Override public void notifyIteratorExhausted() { if (outstandingIterators.decrementAndGet() <= 0) { flush(); } } }
public void preHasNext() { if (!scannedResultsStarted.getAndSet(true)) { dataIndexRetrieval.notifyIteratorInitiated(); } }
default RowWriter createDataIndexWriter(final InternalDataAdapter<?> adapter) { return new DefaultDataIndexRowWriterWrapper( createWriter(DataIndexUtils.DATA_ID_INDEX, adapter)); }
@Override public void delete(final GeoWaveRow row) { delegateDeleter.delete(new GeoWaveRowWrapper(row)); }
public boolean adapterSupportsDataIndex() { return DataIndexUtils.adapterSupportsDataIndex(getDataAdapter()); }
@Override public GeoWaveValue[] getData(final short adapterId, final byte[] dataId) { try (CloseableIterator<GeoWaveValue[]> it = getData(adapterId, new byte[][] {dataId})) { if (it.hasNext()) { return it.next(); } } return null; }
private void deferredReadFields() { fieldValuesFuture = asyncRetrieval.getDataAsync(getInternalAdapterId(), getDataId()); } }
public static GeoWaveRow deserializeDataIndexRow( final byte[] dataId, final short adapterId, final byte[] serializedValue, final boolean visibilityEnabled) { return new GeoWaveRowImpl( new GeoWaveKeyImpl(dataId, adapterId, new byte[0], new byte[0], 0), new GeoWaveValue[] {deserializeDataIndexValue(serializedValue, visibilityEnabled)}); }
public void add(final byte[] dataId, final GeoWaveValue value) { preAdd(); getCurrentAsyncCollection().putAsync( dataId, DataIndexUtils.serializeDataIndexValue(value, visibilityEnabled)); }
@Override protected T decodeRow( final GeoWaveRow row, final QueryFilter[] clientFilters, final Index index) { final T retVal = super.decodeRow(row, clientFilters, index); return batchHelper.postDecodeRow(retVal); }
public AsyncNativeEntryIteratorWrapper( final PersistentAdapterStore adapterStore, final Index index, final Iterator<GeoWaveRow> scannerIt, final QueryFilter[] clientFilters, final ScanCallback<T, ? extends GeoWaveRow> scanCallback, final byte[] fieldSubsetBitmask, final double[] maxResolutionSubsamplingPerDimension, final boolean decodePersistenceEncoding, final BatchDataIndexRetrieval dataIndexRetrieval) { super( adapterStore, index, scannerIt, clientFilters, scanCallback, fieldSubsetBitmask, maxResolutionSubsamplingPerDimension, decodePersistenceEncoding, dataIndexRetrieval); batchHelper = new BatchDataIndexRetrievalIteratorHelper<>(dataIndexRetrieval); }
@Override public boolean hasNext() { batchHelper.preHasNext(); return super.hasNext(); }
@Override public synchronized void flush() { if (!currentBatchesPerAdapter.isEmpty()) { currentBatchesPerAdapter.forEach((k, v) -> flush(k, v)); } }