@Override public <T> Deleter<T> createDeleter(final ReaderParams<T> readerParams) { // Currently, the InsertionIdQueryFilter is incompatible with the hbase // bulk deleter when the MultiRowRangeFilter is present. This check // prevents the situation by deferring to a single row delete. boolean isSingleRowFilter = false; if (readerParams.getFilter() instanceof InsertionIdQueryFilter) { isSingleRowFilter = true; } if (isServerSideLibraryEnabled() && !isSingleRowFilter) { return new HBaseDeleter(readerParams, this); } else { final RowDeleter rowDeleter = createRowDeleter( readerParams.getIndex().getName(), readerParams.getAdapterStore(), readerParams.getInternalAdapterStore(), readerParams.getAdditionalAuthorizations()); if (rowDeleter != null) { return new QueryAndDeleteByRow<>(rowDeleter, createReader(readerParams)); } return new QueryAndDeleteByRow<>(); } }
default <T> Deleter<T> createDeleter(final ReaderParams<T> readerParams) { return new QueryAndDeleteByRow<>( createRowDeleter( readerParams.getIndex().getName(), readerParams.getAdapterStore(), readerParams.getInternalAdapterStore(), readerParams.getAdditionalAuthorizations()), createReader(readerParams)); }
default void delete(final DataIndexReaderParams readerParams) { try (QueryAndDeleteByRow<GeoWaveRow> defaultDeleter = new QueryAndDeleteByRow<>( createRowDeleter( DataIndexUtils.DATA_ID_INDEX.getName(), readerParams.getAdapterStore(), readerParams.getInternalAdapterStore()), createReader(readerParams))) { while (defaultDeleter.hasNext()) { defaultDeleter.next(); } } }
@Override public <T> Deleter<T> createDeleter(final ReaderParams<T> readerParams) { return new QueryAndDeleteByRow<>( createRowDeleter( readerParams.getIndex().getName(), readerParams.getAdapterStore(), readerParams.getInternalAdapterStore(), readerParams.getAdditionalAuthorizations()), // intentionally don't run this reader as async because it does // not work well while simultaneously deleting rows new RocksDBReader<>(client, readerParams, false)); }
@Override public <T> Deleter<T> createDeleter(final ReaderParams<T> readerParams) { return new QueryAndDeleteByRow<>( createRowDeleter( readerParams.getIndex().getName(), readerParams.getAdapterStore(), readerParams.getInternalAdapterStore(), readerParams.getAdditionalAuthorizations()), // intentionally don't run this reader as async because it does // not work well while simultaneously deleting rows new RedisReader<>( client, options.getCompression(), readerParams, gwNamespace, options.getStoreOptions().isVisibilityEnabled(), false)); }