private byte[] getVisibility(Row result) { if (MetadataType.STATS.equals(metadataType)) { ByteBuffer buf = result.get(CassandraMetadataWriter.VISIBILITY_KEY, ByteBuffer.class); if (buf != null) { return buf.array(); } } return null; }
protected String getColumnOptionValue(final Map<String, String> options) { // if this is not "row" merging than it is merging stats on the metadata // table return MetadataType.STATS.name(); }
public static RScoredSortedSet<GeoWaveMetadata> getMetadataSet( final RedissonClient client, final Compression compression, final String namespace, final MetadataType metadataType, final boolean visibilityEnabled) { // stats also store a timestamp because stats can be the exact same but // need to still be unique (consider multiple count statistics that are // exactly the same count, but need to be merged) return client.getScoredSortedSet( namespace + "_" + metadataType.toString(), compression.getCodec( MetadataType.STATS.equals(metadataType) ? visibilityEnabled ? GeoWaveMetadataWithTimestampCodec.SINGLETON_WITH_VISIBILITY : GeoWaveMetadataWithTimestampCodec.SINGLETON_WITHOUT_VISIBILITY : visibilityEnabled ? GeoWaveMetadataCodec.SINGLETON_WITH_VISIBILITY : GeoWaveMetadataCodec.SINGLETON_WITHOUT_VISIBILITY)); }
public synchronized RocksDBMetadataTable getMetadataTable(final MetadataType type) { if (metadataOptions == null) { RocksDB.loadLibrary(); metadataOptions = new Options().setCreateIfMissing(true).optimizeForSmallDb(); } final String directory = subDirectory + "/" + type.name(); return metadataTableCache.get( keyCache.get(directory, d -> new CacheKey(d, type.equals(MetadataType.STATS)))); }
for (final MetadataType metadataType : MetadataType.values()) { try (MetadataWriter writer = ((BaseDataStore) other).baseOperations.createMetadataWriter(metadataType)) {
private boolean useSecondaryId(final MetadataQuery query) { return !MetadataType.STATS.equals(metadataType) || query.hasSecondaryId(); } }
@Override protected String getMetadataTableName(final MetadataType type) { return AbstractGeoWavePersistence.METADATA_TABLE + "_" + type.name(); }
@Override public MetadataWriter createMetadataWriter(final MetadataType metadataType) { return new RedisMetadataWriter( RedisUtils.getMetadataSet( client, options.getCompression(), gwNamespace, metadataType, options.getStoreOptions().isVisibilityEnabled()), MetadataType.STATS.equals(metadataType)); }
public String getMetadataTableName(final MetadataType metadataType) { final String tableName = metadataType.name() + "_" + AbstractGeoWavePersistence.METADATA_TABLE; return tableName; }
@Override public MetadataWriter createMetadataWriter(final MetadataType metadataType) { final String tableName = getMetadataTableName(metadataType); // this checks for existence prior to create synchronized (CREATE_TABLE_MUTEX) { try { if (!indexExists(tableName)) { // create table final Create create = getCreateTable(tableName); create.addPartitionKey(CassandraMetadataWriter.PRIMARY_ID_KEY, DataType.blob()); if (MetadataType.STATS.equals(metadataType) || MetadataType.INTERNAL_ADAPTER.equals(metadataType)) { create.addClusteringColumn(CassandraMetadataWriter.SECONDARY_ID_KEY, DataType.blob()); create.addClusteringColumn( CassandraMetadataWriter.TIMESTAMP_ID_KEY, DataType.timeuuid()); if (MetadataType.STATS.equals(metadataType)) { create.addColumn(CassandraMetadataWriter.VISIBILITY_KEY, DataType.blob()); } } create.addColumn(CassandraMetadataWriter.VALUE_KEY, DataType.blob()); executeCreateTable(create, tableName); } } catch (final IOException e) { LOGGER.warn("Unable to check if table exists", e); } } return new CassandraMetadataWriter(this, tableName); }
StringColumnFamilyFactory.getSingletonInstance(), tableName); if (MetadataType.STATS.equals(metadataType) && options.isServerSideLibraryEnabled()) { synchronized (this) { if (!iteratorsAttached) {
public HBaseMetadataWriter(final BufferedMutator writer, final MetadataType metadataType) { this.writer = writer; metadataTypeBytes = StringUtils.stringToBinary(metadataType.name()); }
final String tableName = operations.getMetadataTableName(metadataType); String[] selectedColumns = getSelectedColumns(query); if (MetadataType.STATS.equals(metadataType)) { selectedColumns = Arrays.append(selectedColumns, CassandraMetadataWriter.VISIBILITY_KEY); return MetadataType.STATS.equals(metadataType) ? new StatisticsRowIterator(retVal, query.getAuthorizations()) : retVal;
public String getMetadataTableName(final MetadataType metadataType) { final String tableName = metadataType.name() + "_" + AbstractGeoWavePersistence.METADATA_TABLE; return getQualifiedTableName(tableName); }
final boolean isStats = MetadataType.STATS.equals(metadataType) && mergeStats; final CloseableIterator<GeoWaveMetadata> retVal = new CloseableIteratorWrapper<>(originalResults, resultsIt);
@Override public boolean delete(final MetadataQuery query) { // the nature of metadata deleter is that primary ID is always // well-defined and it is deleting a single entry at a time TableName tableName = operations.getTableName(operations.getMetadataTableName(metadataType)); try { BufferedMutator deleter = operations.getBufferedMutator(tableName); Delete delete = new Delete(query.getPrimaryId()); delete.addColumns(StringUtils.stringToBinary(metadataType.name()), query.getSecondaryId()); deleter.mutate(delete); deleter.close(); return true; } catch (IOException e) { LOGGER.error("Error deleting metadata", e); } return false; }
if (MetadataType.STATS.equals(type)) { return new CloseableIterator.Wrapper(new Iterator<GeoWaveMetadata>() { final PeekingIterator<GeoWaveMetadata> peekingIt =
final byte[] columnFamily = StringUtils.stringToBinary(metadataType.name()); final byte[] columnQualifier = query.getSecondaryId();