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; }
private boolean useSecondaryId(final MetadataQuery query) { return !MetadataType.STATS.equals(metadataType) || query.hasSecondaryId(); } }
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)); }
@Override public MetadataWriter createMetadataWriter(final MetadataType metadataType) { return new RedisMetadataWriter( RedisUtils.getMetadataSet( client, options.getCompression(), gwNamespace, metadataType, options.getStoreOptions().isVisibilityEnabled()), MetadataType.STATS.equals(metadataType)); }
@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 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)))); }
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;
final boolean isStats = MetadataType.STATS.equals(metadataType) && mergeStats; final CloseableIterator<GeoWaveMetadata> retVal = new CloseableIteratorWrapper<>(originalResults, resultsIt);
if (MetadataType.STATS.equals(type)) { return new CloseableIterator.Wrapper(new Iterator<GeoWaveMetadata>() { final PeekingIterator<GeoWaveMetadata> peekingIt =
final boolean isStats = MetadataType.STATS.equals(metadataType) && mergeStats; final CloseableIterator<GeoWaveMetadata> retVal; if (isStats) {