protected WriteResults internalWrite( final T entry, final Function<Writer<T>, WriteResults> internalWriter) { final Map<String, List<SinglePartitionInsertionIds>> insertionIdsPerIndex = new HashMap<>(); for (final Writer<T> indexWriter : writers) { final WriteResults ids = internalWriter.apply(indexWriter); for (final String indexName : ids.getWrittenIndexNames()) { List<SinglePartitionInsertionIds> partitionInsertionIds = insertionIdsPerIndex.get(indexName); if (partitionInsertionIds == null) { partitionInsertionIds = new ArrayList<>(); insertionIdsPerIndex.put(indexName, partitionInsertionIds); } partitionInsertionIds.addAll(ids.getInsertionIdsWritten(indexName).getPartitionKeys()); } } return new WriteResults(Maps.transformValues(insertionIdsPerIndex, v -> new InsertionIds(v))); }
public static byte[][] getInsertionPartitionKeys( final NumericIndexStrategy strategy, final MultiDimensionalNumericData insertionData) { final InsertionIds insertionIds = strategy.getInsertionIds(insertionData); return insertionIds.getPartitionKeys().stream().map(input -> input.getPartitionKey()).toArray( i -> new byte[i][]); } }
return new GeoWaveKey[] {new GeoWaveKeyImpl(dataId, internalAdapterId, null, null, 0)}; final GeoWaveKey[] keys = new GeoWaveKey[insertionIds.getSize()]; final Collection<SinglePartitionInsertionIds> partitionKeys = insertionIds.getPartitionKeys(); final Iterator<SinglePartitionInsertionIds> it = partitionKeys.iterator(); final int numDuplicates = keys.length - 1;
public FitToIndexPersistenceEncoding( final byte[] dataId, final PersistentDataset<CommonIndexValue> commonData, final PersistentDataset<Object> adapterExtendedData, final byte[] partitionKey, final byte[] sortKey) { super(dataId, commonData, adapterExtendedData); insertionIds = new InsertionIds(partitionKey, sortKey == null ? null : Collections.singletonList(sortKey)); }
Lists.newArrayListWithCapacity(insertIds.getSize()); insertIds.getCompositeInsertionIds().iterator(); iter.hasNext();) { final byte[] id = iter.next();
public BaseInsertionIdQuery( final InternalDataAdapter<?> adapter, final Index index, final InsertionIdQuery query, final ScanCallback<T, ?> scanCallback, final DedupeFilter dedupeFilter, final DifferingFieldVisibilityEntryCount differingVisibilityCounts, final FieldVisibilityCount visibilityCounts, final DataIndexRetrieval dataIndexRetrieval, final String[] authorizations) { super( new short[] {adapter.getAdapterId()}, index, query, dedupeFilter, scanCallback, null, null, null, null, differingVisibilityCounts, visibilityCounts, dataIndexRetrieval, authorizations); this.ranges = new InsertionIds( query.getPartitionKey(), Lists.newArrayList(query.getSortKey())).asQueryRanges(); }
insertIds.getCompositeInsertionIds().iterator(); iter.hasNext();) { final byte[] id = iter.next();
if (dataIdIndex || !insertionIds.isEmpty()) { if (secondaryIndex && DataIndexUtils.adapterSupportsDataIndex(adapter) && !dataIdIndex) { byte[] indexModelVisibility = new byte[0];
new BasicNumericDataset(ranges)).getFirstPartitionAndSortKeyPair();
@Override public void insertionIdsAdded(final InsertionIds insertionIds) { for (final SinglePartitionInsertionIds partitionId : insertionIds.getPartitionKeys()) { final byte first = partitionId.getPartitionKey()[0]; if (first == pointCurveMultiDimensionalId) { pointCurveCount += partitionId.getSortKeys().size(); } else if (first == xzCurveMultiDimensionalId) { xzCurveCount += partitionId.getSortKeys().size(); } } }
@Override public InsertionIds getInsertionIds( final MultiDimensionalNumericData indexedData, final int maxDuplicateInsertionIds) { // return a single empty sort key as the ID return new InsertionIds(null, Collections.singletonList(new byte[0])); }
Lists.newArrayListWithCapacity(insertIds.getSize()); for (final byte[] id : insertIds.getCompositeInsertionIds()) { final Tuple2<ByteArray, Tuple2<GeoWaveInputKey, Geometry>> indexPair = new Tuple2<>(new ByteArray(id), t);
private WriteResults internalWrite( final T entry, final Function<T, WriteResults> internalWriter) { final Iterator<T> indexedEntries = adapter.convertToIndex(index, entry); final Map<String, List<SinglePartitionInsertionIds>> insertionIdsPerIndex = new HashMap<>(); while (indexedEntries.hasNext()) { final WriteResults ids = internalWriter.apply(indexedEntries.next()); for (final String indexName : ids.getWrittenIndexNames()) { List<SinglePartitionInsertionIds> partitionInsertionIds = insertionIdsPerIndex.get(indexName); if (partitionInsertionIds == null) { partitionInsertionIds = new ArrayList<>(); insertionIdsPerIndex.put(indexName, partitionInsertionIds); } partitionInsertionIds.addAll(ids.getInsertionIdsWritten(indexName).getPartitionKeys()); } } return new WriteResults(Maps.transformValues(insertionIdsPerIndex, v -> new InsertionIds(v))); }
@Override public void insertionIdsRemoved(final InsertionIds insertionIds) { for (final SinglePartitionInsertionIds partitionId : insertionIds.getPartitionKeys()) { final byte first = partitionId.getPartitionKey()[0]; if (first == pointCurveMultiDimensionalId) { pointCurveCount -= partitionId.getSortKeys().size(); } else if (first == xzCurveMultiDimensionalId) { xzCurveCount -= partitionId.getSortKeys().size(); } } }
@Override public InsertionIds getInsertionIds(final Date indexedData) { return new InsertionIds(Collections.singletonList(toIndexByte(indexedData))); }
|| (insertionIds.getPartitionKeys() == null) || insertionIds.getPartitionKeys().isEmpty()) { if (partitionKeysEmpty) { return new InsertionIds(); } else { return new InsertionIds( Arrays.stream(partitionKeys).map( input -> new SinglePartitionInsertionIds(input)).collect(Collectors.toList())); } else { final List<SinglePartitionInsertionIds> permutations = new ArrayList<>(insertionIds.getPartitionKeys().size() * partitionKeys.length); for (final byte[] partitionKey : partitionKeys) { permutations.addAll( Collections2.transform( insertionIds.getPartitionKeys(), new Function<SinglePartitionInsertionIds, SinglePartitionInsertionIds>() { @Override return new InsertionIds(permutations);
@Override public void insertionIdsAdded(final InsertionIds ids) { for (final SinglePartitionInsertionIds partitionIds : ids.getPartitionKeys()) { final byte first = partitionIds.getPartitionKey()[0]; if (orderedTierIdToSfcIndex.containsKey(first)) { tierCounts[orderedTierIdToSfcIndex.get(first).intValue()] += partitionIds.getSortKeys().size(); } } }
@Override public InsertionIds getInsertionIds(final String indexedData) { return new InsertionIds(Collections.singletonList(StringUtils.stringToBinary(indexedData))); }
private InsertionIds trimPartitionForSubstrategy(final InsertionIds insertionIds) { final List<SinglePartitionInsertionIds> retVal = new ArrayList<>(); for (final SinglePartitionInsertionIds partitionIds : insertionIds.getPartitionKeys()) { final byte[] trimmedPartitionId = CompoundIndexStrategy.trimPartitionForSubstrategy( partition1Length, index == 0, partitionIds.getPartitionKey()); if (trimmedPartitionId == null) { return insertionIds; } else { retVal.add( new SinglePartitionInsertionIds(trimmedPartitionId, partitionIds.getSortKeys())); } } return new InsertionIds(retVal); }
@Override public void insertionIdsRemoved(final InsertionIds ids) { for (final SinglePartitionInsertionIds partitionIds : ids.getPartitionKeys()) { final byte first = partitionIds.getPartitionKey()[0]; if (orderedTierIdToSfcIndex.containsKey(first)) { tierCounts[orderedTierIdToSfcIndex.get(partitionIds.getPartitionKey()[0]).intValue()] -= partitionIds.getSortKeys().size(); } } }