Github user pnowojski commented on a diff in the pull request: https://github.com/apache/flink/pull/4722#discussion_r141083304 --- Diff: flink-contrib/flink-statebackend-rocksdb/src/main/java/org/apache/flink/contrib/streaming/state/RocksDBKeyedStateBackend.java --- @@ -252,6 +257,43 @@ public RocksDBKeyedStateBackend( LOG.debug("Setting initial keyed backend uid for operator {} to {}.", this.operatorIdentifier, this.backendUID); } + @Override + public <N> Stream<K> getKeys(String field, N namespace) { + Tuple2<ColumnFamilyHandle, ?> columnInfo = kvStateInformation.get(field); + if (columnInfo == null) { + return Stream.empty(); + } + + RocksIterator iterator = db.newIterator(columnInfo.f0); + iterator.seekToFirst(); + + Iterator<K> sourceIterator = new Iterator<K>() { + @Override + public boolean hasNext() { --- End diff -- I've changed this code to iterate over a snapshot of a db, so this should be fine now for RocksDB.
---